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"를 의미합니다.

관련 정보