Comment detail

コマンドライン引数の取得 (Nested Flatten)

This comment is reply for 5003 匿名: Perl の場合@ARGVに入っています...(コマンドライン引数の取得). Go to thread root.

ちなみにARGVは、@ARGVをすべてファイル名と見なしてオープンした際のファイルハンドル。<><ARGV>を略記したものです。

$ARGVは、ARGVをイテレートしている際の実際のファイル名。$.で現在の行数も取れます。

以下、サンプルプログラムはこの点をデモります。

詳しくは

perldoc perlvar

で。

Dan the Perl Monger

1
2
3
4
5
6
7
8
9
#!/usr/local/bin/perl
use strict;
use warnings;

while(my $line = <ARGV>){
    printf "%12s%4d:%s", $ARGV, $., $line;
}
# 以下のようにして一行にできちゃう!
perl -ple '$_=sprintf "%12s%4d:%s", $ARGV, $., $_' argv.pl

Index

Feed

Other

Link

Pathtraq

loading...