「初めての Perl」勉強6日目
今日は時間があんまし無かったので1セクションのみです><
第十二章 ディレクトリ操作
練習問題1
次のようなプログラムを書いてください。まずユーザからディレクトリ名を入力してもらい、そのディレクトリに移動します。もしユーザが入力した行に空白文字だけしか含まれていなければ、デフォルトの動作として、そのユーザのホームディレクトリに移動します。移動したら、そのディレクトリの内容(ただし、ドットで始まるファイルを除く)をアルファベット順に表示します。
#!/usr/local/bin/perl -w chomp (my $dir = <STDIN>); if ($dir =~ /\s/) { $dir = "~/"; } my @files = <$dir/*>; foreach my $file (sort @files) { next if $file eq "." or $file eq ".."; print $file."\n"; }
最初はディレクトリハンドルを使った方法で書いてたけど、めちゃめちゃ悩んで結局グロブに変更した。
練習問題2
問題1のプログラムを改造して、ドット以外で始まるものだけでなく、全てのファイルを表示するようにしてください。
#!/usr/local/bin/perl -w chomp (my $dir = <STDIN>); if ($dir =~ /\s/) { $dir = "~/"; } opendir DIR, $dir or die "cannot open $dir: $!"; foreach my $file (my @files = readdir DIR) { print $file."\n"; }
なぜか今度はディレクトリハンドルを使った方法だったりw