シェル/スクリプト言語お勉強備忘録
Perlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しようPerlを勉強しよう

3−5.入出力

■標準入出力(STDIN)

 $tmp = <STDIN>;
標準入力から1行読込んでくることになります。

 @tmp = <STDIN>;
各行の配列の各要素に対応させて読み込みます。
 1行目: $tmp[0]
 2行目: $tmp[1]
 3行目: $tmp[2]
     :
     :
入力された各行をいろいろいじくるのが一般的な使い方だと思います。下記にサンプルプログラムを紹介します
標準入力から読込み各行の作業をするサンプル

#!/bin/perl


while ($tmp = <STDIN>){
 各行の作業1;
 各行の作業2;
 各行の作業3;
   :
   :
}
各行の作業部分に処理プログラムを入れてお望みのプログラムを仕上げてください。

次にPerlにはいろいろな略記法があります。その中で比較的使うであろう例を紹介します。
略記法使用前

#!/bin/perl
while ($tmp = <STDIN>){
  chop($tmp);
  print "line$num = $tmp.\n";
  $num++;
}
略記法使用後

#!/bin/perl
while (<STDIN>){
  chop;
  print "line$num = $_.\n";
  $num++;
}

perlでは、whileなどの制御部分が「<>」で囲まれたものだけからなっている場合ディフォルトで「$_」に値を格納します。chopの後ろにも何もないのはこれもchop($_)を略したものです。他にも略記法はいろいろありますので皆さんで調べてみてください。

■標準出力(STDOUT)

printを用いたプログラムだけでは表現が乏しく物足りませんよね!perlにももう少しきめ細やかな制御ができる「printf」という「C言語のprintf」に似た関数があります。
例)
 #!/bin/perl
 $num = 100;
 $str = "hello!!";
 printf "%5d %10s",$num,$str;
     @  A
 @5文字幅のところに10進整数値で$numを出力する。
 A10文字幅のフィールドに$strを出力する。


戻る
Perlを勉強しよう