Perlスクリプトの指示[閉じる]

Perlスクリプトの指示[閉じる]
#!/usr/bin/perl -w
use strict;

my $args;
$args=@ARGV;

if ($args<1)
{
    die("Expecting a filename");
}
sub showstat
{

    print " $_[0] dev, device number of filesystem\n";
      print " $_[1] ino,      inode number\n";
      print " $_[2] mode,     file mode  (type and permissions)\n";
      print " $_[3] nlink,    number of (hard) links to the file\n";
}

my $filename=$ARGV[0];
if (open (TESTFILE,$filename))
{
    my @filedata= stat(TESTFILE);

    &showstat(@filedata);
    close (TESTFILE);
}
else
{
    print "error on open $filename";

}

$args私の質問は、配列(@ARGV)の変数を設定すると、subshowstatの下の行を印刷するときには機能しないはずですprint"$args[0] ..." print "$args[1]"。そして、そうでは$filename=$ARGV[0]ありませんか$filename=$args[1]

if文条件にと書かれていますが&showstat(filedata)、どういう意味ですか&?私が探してみると「~の一部」という意味でしたが、書かれた行が混乱してしまいました。

ベストアンサー1

$args私の質問は、配列()に変数()を設定すると、@ARGVsubの下の行を印刷するときにはshowstat機能しないことです print"$args[0] ..." print "$args[1]"

$args[0]Perlでは、サブルーチンに渡された引数が配列に格納されるため、そうしてはいけません@_。最初のパラメーターの値を取得するには使用する必要があります。$_[0]

そしての$filename=$ARGV[0]場合にはそうではありませんか$filename=$args[1]

何ですか$filename?スクリプト名の場合は、以下を使用する必要があります。$0変える$ARGV[0]$ARGV[0]スクリプトに渡される最初のパラメータ。

if文条件にと書かれていますが&showstat(filedata)、どういう意味ですか&

これは単に「サブルーチンを呼び出すshowstat」ことを意味します。

おすすめ記事