perl

初めてのPerl 第12章

練習問題の回答をメモ。 ex12-1 #!/usr/bin/perl use strict; print "Enter a directory name: "; chomp(my $dir = <STDIN>); if ($dir =~ /^\s*$/) { chdir or die "Cannot chdir to home directory: $!"; } else { chdir "$dir" or die "Cannot chdir to '$dir': </stdin>…

初めてのPerl 第11章

練習問題の回答をメモ。今回は、答えを見て自分の書いたプログラムが恥ずかしくなった。この章はいろいろと勉強になったし、また読み返そう。 ex11-1 #!/usr/bin/perl use strict; print "Enter input file name: "; chomp(my $input_file = <STDIN>); print "Enter</stdin>…

初めてのPerl 第10章

練習問題の回答をメモ。 ex10-1 #!/usr/bin/perl use strict; my $answer = int(1 + rand 100); #print "The answer is <<$answer>>.\n"; while (1) { print "Choose a number between 1 to 100: "; chomp(my $try = <STDIN>); if ($try =~ /quit|exit|^\s*$/i) { l</stdin>…

Emacs で Perl のコードを補完したい

Perl や JavaScript で書くときに ruby-electric-mode が恋しくなる - gan2 の Ruby 勉強日記 perlplusでシンボルを補完 - gan2 の Ruby 勉強日記 を見て便利そうだったので試してみた。 perlplus.el をロードパスの通ったディレクトリに入れて、以下を .ema…

初めてのPerl 第9章

練習問題の回答をメモ。 ex09-1 #!/usr/bin/perl use strict; my $what = 'fred|barney'; while (<>) { chomp; if (/($what){3}/) { print "Matched: $`<$&>$'\n"; } else { print "No match.\n"; } } ex09-2 #!/usr/bin/perl use strict; my %sum; while (<…

初めてのPerl 第8章

練習問題の回答をメモ。正規表現って奥が深そう。 ex08-1 #!/usr/bin/perl use strict; while (<>) { chomp; # 正しくは:/\b(fred|wilma)\s+flintstone\b/ if (/(fred|wilma)\s+flintstone/) { print "Matched: $`<$&>$'\n"; } else { print "No match.\n";…

初めてのPerl 第7章

練習問題をメモ。 ex07-1 #!/usr/bin/perl use strict; while (<>) { chomp; if (/fred/) { print "Matched: $`<$&>$'\n"; } else { print "No match.\n"; } } ex07-2 #!/usr/bin/perl use strict; while (<>) { chomp; if (/a+b*/) { print "Matched: $`<$&…

初めてのPerl 第6章

練習問題をメモ。 ex06-1 #!/usr/bin/perl use strict; print reverse <>; ex06-2 #!/usr/bin/perl use strict; ## 1行づつ読むバージョン #print ((0..9) x 2, "\n"); # while (<>) { # chomp; # printf "%20s\n", $_; # } ## 一気読みバージョン chomp(my…

初めてのPerl 第5章

練習問題をメモ。 ex05-1 #!/usr/bin/perl -w use strict; my %last_name = ( "fred" => "flintstone", "barney" => "rubble", "wilma" => "flintstone", ); print "Enter a first name: "; chomp(my $first_name = <STDIN>); if (exists $last_name{$first_name}) </stdin>…

初めてのPerl 第4章

この本の説明だと少しやっかいもの扱いされてる感じだったけど、local演算子でダイナミックスコープが実現できる部分は JavaScript に似てて面白いなと思った。 ex04-1.pl #!/usr/bin/perl -w use strict; sub total { my $sum_of_all = 0; foreach (@_) { $…

初めてのPerl 第3章

練習問題の回答だけメモしておく。 ex03-1 #!/usr/bin/perl -w chomp(@lines = <STDIN>); @lines = reverse @lines; foreach (@lines) { print "$_\n"; } ex03-2 #!/usr/bin/perl -w @people = qw/fred betty barney dino wilma pebbles bamm-bamm/; chomp(@lines = <STDIN></stdin></stdin>…

Perl の対話型環境

Ruby だと対話型環境として irb があるけど、Perl ではシェル上で「perl -de 1」などとすれば Perlデバッガ が起動して対話型環境として使えるみたい。 ただ、Tab で補完ができなかったり、Emacs のキーバインド(C-h、C-n など)が使えないようなのでそこが…

初めてのPerl 第2章

内定先の企業が「Perl やっとけ」と暗に仄めかしてるので Perl のお勉強を始めた(Ruby はしばらく放置かな…)。とりあえず、リャマ本を読み進めてみることにした。練習問題の回答だけ備忘録としてメモしておく。 第2章 ex02-3 print "Input number: "; chom…

カレントディレクトリ以下の全てのファイルの文字列を置換して上書き保存する シェルスクリプトメモ(1)

find 検索開始ディレクトリ オプション -exec perl -p -i.bak -e 's/検索文字列/置換文字列/g' {} \; 使用例 find . -type f -exec perl -p -i -e 's/<html>/<html lang="ja">/g' {} \; Perlの各オプションの意味 項目名 意味 -p 入力ファイルから1行づつ取り出して処理し、表示す</html></html>…