例題 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 文でそれを表示している.
|