2020年6月20日土曜日

開発環境

続・初めてのPerl 改訂第2版 (Randal L. Schwartz(著)brian d foy(著)Tom Phoenix(著)伊藤 直也(監修)長尾 高弘(翻訳)、オライリージャパン)の3章(中級者の基礎知識)、3.5(練習問題)2の解答を求めてみる。

コード

#!/usr/bin/env perl
use strict;
use warnings;
use v5.30;

say '2.';

my $dir = '/etc/';
chdir $dir or die "can't chdir $dir: $!";

while (1) {
    print 'パターンを入力(空文字列で終了、スラッシュは禁止): ';
    chomp(my $pattern = <STDIN>);
    last if $pattern =~ /\A\s*\Z/;
    print map {"$_\n"} grep { eval{/$pattern/}} <.* *>;
    print $@ if $@;
}

入出力結果(Zsh、PowerShell、Terminal)

% ./sample2.pl 
2.
パターンを入力(空文字列で終了、スラッシュは禁止): ^a
afpovertcp.cfg
afpovertcp.cfg~orig
aliases
aliases.db
apache2
asl
asl.conf
auto_home
auto_master
auto_master~orig
autofs.conf
パターンを入力(空文字列で終了、スラッシュは禁止): (
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE / at ./sample2.pl line 15, <STDIN> line 2.
パターンを入力(空文字列で終了、スラッシュは禁止): a$
パターンを入力(空文字列で終了、スラッシュは禁止): a{2}
パターンを入力(空文字列で終了、スラッシュは禁止): p{2}
bashrc_Apple_Terminal
com.apple.screensharing.agent.launchd
ppp
zshrc_Apple_Terminal
パターンを入力(空文字列で終了、スラッシュは禁止): 
%

0 コメント:

コメントを投稿