P.98
例:「STDIN と STDOUT」

print STDOUT "こんにちは!";
print F "こんにちは!";
P.99 例1:「画面からの入力(1)」
print STDOUT "名前:"; $name = <STDIN>; print STDOUT "$nameさん、こんにちは!";
<実行結果>
名前:友香 友香 さん、こんにちは!
例2:「画面からの入力(2)」
print "名前:"; $name = <>; print "$nameさん、こんにちは!";
<実行結果> 名前:友香 友香 さん、こんにちは!
例:「chomp による \n の削除」
print "名前:"; $name = <STDIN>; chomp $name; print "$nameさん、こんにちは!";
<実行結果> 名前:友香 友香さん、こんにちは!
P.104
open R, "問題.txt"; @a = <R>; open W, "解答.txt"; print W @a;
「桃太郎第1話.txt」 「桃太郎第1話」 昔々、ある処にお爺さんとお婆さんが住んでいました。 お爺さんは山へ柴刈りに、 お婆さんは川へ洗濯をしに行きました。 (つづく)
P.105 例1:「全文の読み込み」
open T1, "桃太郎第1話.txt"; @story = <T1>; print @story;
<実行結果> 「桃太郎第1話.txt」 「桃太郎第1話」 昔々、ある処にお爺さんとお婆さんが住んでいました。 お爺さんは山へ柴刈りに、 お婆さんは川へ洗濯をしに行きました。 (つづく)
例2:「先頭行の読み込み」
open T1, "桃太郎第1話.txt"; $story = <T1>; print $story;
<実行結果> 「桃太郎第1話」
P.106 例3:「先頭から3行だけの読み込み」
open T1, "桃太郎第1話.txt"; for (1..3) { $story = <T1>; print $story; }
<実行結果> 「桃太郎第1話」 昔々、ある処にお爺さんとお婆さんが住んでいました。 お爺さんは山へ柴刈りに、
P.107 例:「タイトル・リストの作成」
$k = "01"; for (1..10) { open F, "tale-$k.txt"; $title = <F>; print "第 $k 話:$title \n"; ++$k; }
<実行結果> 第 01 話:「桃太郎」 第 02 話:「赤頭巾ちゃん」 第 03 話:「浦島太郎」 第 04 話:「宝島」 第 05 話:「竹取物語」 第 06 話:「カチカチ山」 第 07 話:「鶴の恩返し」 第 08 話:「猿蟹合戦」 第 09 話:「白雪姫」 第 10 話:「シンデレラ」
P.108 例:「2**100 の値」
open F, ">temp.txt"; use Math::BigInt; $a = new Math::BigInt 2; $b = $a**100; print "2**100 = $b"; print F " 2**100 = $b";
<実行結果> 2**100 = +1267650600228229401496703205376
「桃太郎第1話.txt」 「桃太郎第1話」 昔々、ある処にお爺さんとお婆さんが住んでいました。 お爺さんは山へ柴刈りに、 お婆さんは川へ洗濯をしに行きました。 (つづく)
P.109 「桃太郎第2話.txt」 「桃太郎第2話」 お婆さんが川で洗濯をしていると、 川上から大きな桃が、 ドンブラコ、ドンブラコと流れてきました。 それを見たお婆さんは、 大喜びでその大きな桃を家へ持って帰りました。 (つづく)
「桃太郎第3話.txt」 「桃太郎第3話」 桃を切るとビックリ、 中からは赤ん坊がでできました。 お爺さんとお婆さんはこの子を「桃太郎」と名付け、 大事に大事に育てました。 (おわり)
例1「単純な結合」
open T, ">桃太郎完全版.txt"; open T1, "桃太郎第1話.txt"; open T2, "桃太郎第2話.txt"; open T3, "桃太郎第3話.txt"; print T <T1>; print T <T2>; print T <T3>;
P.110 <実行結果>「桃太郎完全版.txt」 「桃太郎第1話」 昔々、ある処にお爺さんとお婆さんが住んでいました。 お爺さんは山へ柴刈りに、 お婆さんは川へ洗濯をしに行きました。 (つづく)「桃太郎第2話」 お婆さんが川で洗濯をしていると、 川上から大きな桃が、 ドンブラコ、ドンブラコと流れてきました。 それを見たお婆さんは、 大喜びでその大きな桃を家へ持って帰りました。 (つづく)「桃太郎第3話」 桃を切るとビックリ、 中からは赤ん坊がでできました。 お爺さんとお婆さんはこの子を「桃太郎」と名付け、 大事に大事に育てました。 (おわり)
例2「全体のレイアウトをしての結合」
open T, ">桃太郎完全版.txt"; open T1, "桃太郎第1話.txt"; open T2, "桃太郎第2話.txt"; open T3, "桃太郎第3話.txt"; @story1 = <T1>; shift @story1; pop @story1; @story2 = <T2>; shift @story2; pop @story2; @story3 = <T3>; shift @story3; pop @story3; print T <<EOF; 「桃太郎完全版」\n @story1 @story2 @story3 おわり EOF
P.111 <実行結果> 「桃太郎完全版.txt」 「桃太郎完全版」 昔々、ある処にお爺さんとお婆さんが住んでいました。 お爺さんは山へ柴刈りに、 お婆さんは川へ洗濯をしに行きました。 お婆さんが川で洗濯をしていると、 川上から大きな桃が、 ドンブラコ、ドンブラコと流れてきました。 それを見たお婆さんは、 大喜びでその大きな桃を家へ持って帰りました。 桃を切るとビックリ、 中からは赤ん坊がでできました。 お爺さんとお婆さんはこの子を「桃太郎」と名付け、 大事に大事に育てました。 おわり
P.112 例1:「日記帳」
&hizuke; open F, ">>日記帳.txt"; print "天気:"; $tenki = <>; print "出来事:"; $event = <>; print F "$stamp 天気:$tenki \n $event \n\n"; sub hizuke { @tx = localtime; @day = qw (日 月 火 水 木 金 土); $year = $tx[5] + 1900; $mon = $tx[4] +1; $day = $tx[3]; $mday = $day[$tx[6]]; $stamp = " $year 年 $mon 月 $day 日($mday)"; }
<実行結果> 天気:晴れ 出来事:今日は疲れた。ゴールデンウィークはどうする ...
P.114 例2「受信済みタイムスタンプの自動処理」
&hizuke; $num = "0001"; for (1..10) { open F, ">>receive/$num.txt"; print F "\n受信日:$stamp"; close F; rename "receive/$num.txt", "send/f-$num.txt"; ++$num; } sub hizuke { @tx = localtime; @day = qw (日 月 火 水 木 金 土); $year = $tx[5] + 1900; $mon = $tx[4] +1; $day = $tx[3]; $mday = $day[$tx[6]]; $hour = $tx[2]; $min = $tx[1]; $sec = $tx[0]; $stamp = " $year 年 $mon 月 $day 日($mday)$hour 時 $min 分 $sec 秒"; }