0

コマンドライン一時ファイル作成を介して一時ファイルにいくつかの単語を入れようとしていますが、一時ファイルに過去の単語はありません

#!/usr/bin/perl -w
system ('clear');
$TMPFILE = "mktemp /tmp/myfile/devid.XXXXXXXXXX";
$echo = "echo /"hello world/" >$TMPFILE";
system ("$TMPFILE");
system ("$echo");

これを解決するために助けてください

4

3 に答える 3

4

mktemp によって出力された名前を取得するには、代わりに次のようにします。

chomp($TMPFILE = `mktemp /tmp/myfile/devid.XXXXXXXXXX`);

しかし、Perl は、シェルに頼ることなく、あなたがしていることすべてを行うことができます。

于 2011-05-15T13:20:04.160 に答える
3

perl スクリプトからの外部コマンドの使用はできるだけ避けてください。

使用できます:File::Tempこの場合のモジュール、これを参照してください

于 2011-05-15T13:19:23.483 に答える
3

これは、他の人があなたに与えたアドバイスの具体的な実例です: 可能であれば、 を呼び出すのではなく、Perl を直接使用してくださいsystem。また、 Perl スクリプトにuse strictとを含める習慣を身に付ける必要があります。use warnings

use strict;
use warnings;

use File::Temp;
my $ft = File::Temp->new(
    UNLINK   => 0,
    TEMPLATE => '/tmp/myfile/devid.XXXXXXXXXX',
);

print "Writing to temp file: ", $ft->filename, "\n";

print $ft "Hello, world.\n";
于 2011-05-15T13:43:19.737 に答える