2006-12 / 2006-12-14

前のエントリ: ActivePerlでLF(0x0a)単体の出力 [perl]
次のエントリ: パワーポイントで作成した図をワードに綺麗に貼り付けるには [word]

ActivePerlはワイルドカード&<>が使えん
2006-12-14-2 / カテゴリ: [win][programming][perl] / [permlink]

解析用使い捨てコードを書くときにいつもtypeするテンプレート↓
while (<>) {
}
普段 cygwin only だから気付かなかったけど、(配布用にコード書いた時に気付いたけど)ActivePerl だとこの構文を使ったソース&次の使い方
> test.pl *.cpp
が無効ね。
Can't open *.cpp: Invalid argument at C:\Documents and Settings\hmiyazaki\My Documents\prog\perl\test.pl line 4.

面倒だけど、引数に正規表現を指定してもらって、内部は opendir/readdir で代替。
と思ったけど、@ARGV をループさせて glob/open すればよさげ。
foreach my $file (map { glob } @ARGV) {
  open F, $file
    or die;
  while (<F>) {
    # ここにコード
  }
  close F;
}

案外これのほうが、<> の $. で行数が得られない(ひたすら加算される)とこが回避されていいかも。
前のエントリ: ActivePerlでLF(0x0a)単体の出力 [perl]
次のエントリ: パワーポイントで作成した図をワードに綺麗に貼り付けるには [word]

2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2013-05-02 16:12