1

以下のように私のtest.plスクリプト。

#!C:\Perl\bin\perl.exe
use strict;
use warnings;


sub printargs
{
    print "@_\n";
}

&printargs("hello", "world"); # Example prints "hello world"

に置き換えprintargs("hello", "world");た場合print($a, $b);

コマンドラインでperltest.plhelloworldを実行するときに'hello'、'world'を$a、$bに渡す方法ありがとうございます。

4

6 に答える 6

4

perldocperlvarで読ん@ARGVでください。

于 2010-02-11T11:46:40.017 に答える
3

$ ARGV [0]には最初の引数が含まれ、$ARGV[1]には2番目の引数が含まれます。

$#ARGVは@ARGV配列の最後の要素の添え字であるため、コマンドラインの引数の数は$#ARGV+1です。

于 2010-02-11T08:11:39.043 に答える
3

コマンドライン引数は@ARGV配列内にあります。それを関数に渡すだけです。

&print( @ARGV );

-のような名前を避けるのがおそらく最善printです。同じ名前の組み込み関数と混同される可能性があります。

于 2010-02-11T08:14:03.127 に答える
1

Perlで「コマンドラインパラメータ」にアクセスしたい。

基本的に、Perlは、実際のスクリプト名の後に渡す文字列を@ARGVという名前の配列と見なします。

簡単なチュートリアルは次のとおりです:http://devdaily.com/perl/edu/qanda/plqa00001.shtml

詳細については、「perlコマンドラインパラメータ」をグーグルで検索してください。

于 2010-02-11T08:13:37.767 に答える
0

基本的に、他の人が言ったように、@ARGVリストはあなたの質問に対する答えです。

ここで、さらに進んでプログラムのコマンドラインオプションを定義する場合は、getargsも確認する必要があります

于 2010-02-11T08:21:22.087 に答える
0

これにより、要求に応じてデータを$aと$bに渡すときに、コマンドライン引数から「helloworld」も出力されます。

#!/usr/bin/perl -w

use warnings;
use strict;

sub printargs($$)
{
    print $_[0] . " " . $_[1] . "\n";
}

my($a,$b) = ($ARGV[0],$ARGV[1]);
printargs($a,$b);
于 2010-02-11T12:08:22.460 に答える