例題 2テキストファイルを入力として,その内容を出力する Perl スクリプト hcat.pl を作りなさい.ただし,最後の一行だけは出力しないものとする.
(実行例)
解答例@contents = <>; pop(@contents); foreach $line (@contents) { print $line; } 解説(1)配列Perl では先頭に @ を付けると配列を意味する. 既に説明したように変数の宣言は必要ない. さらに便利なことに @contents = <>;とすることで,入力の内容が一行ずつ配列に格納される. つまり,配列を用いれば例題 1 のように while 文を使う必要もない (もちろん,すべての内容がメモリに格納されるため,全く同じとはいえない). なお,配列の内容にアクセスする場合は $contents[0]という具合いに先頭に "$" を末尾に "[添字]" を付ける. 配列の添字は C 言語と同じで 0 から始まる.
(2)配列の先頭/末尾に対する要素の追加・削除
(3)foreach
foreach $変数 (@配列){ ... } 上の解答例でいえば foreach $line (@contents) { print $line; }であるが,これは配列 contents の要素を順番に変数 line へ代入し, print 文でそれを表示している. |