0
sub cdevice{
    $p=$_[0];
    $s=$_[1];
    $q=$_[2];
    try {
        $device_create_cmd ="create type:NSR Device;media type:adv_file;name:$p;device access information:$p";
        system("echo $device_create_cmd > command.txt  ");
    } catch Error with {
        print "Error  " ;
        exit();     
    };
}
cdevice("/device1","raddh054","/device1");

この pl ファイルは Windows では正常に動作しますが、Linux では動作しません。これは、Linux の echo がテキスト間のスペースを受け入れないためです!どうすれば解決できますか?

4

1 に答える 1

4

ファイルを開いて自分で書き込むだけです。なぜシェルを巻き込むのですか?

use strictures;
use autodie qw(:all);

⋮

sub cdevice {
    my ($p, $s, $q) = @_;
    try {
        open my $h, '>', 'command.txt';
        print {$h} "create type:NSR Device;media type:adv_file;name:$p;device access information:$p\n"
    } …
于 2012-04-19T06:29:12.760 に答える