3

この文字列をPerlで連結しようとしています:"/。hush_profile";

文字列に「/」を追加すると、問題が発生し続けます。私はそれをエスケープしようとしましたが、それもうまくいきません。

これが私の問題コードの行です:

#!/usr/bin/perl -w
use strict;
my($fileloc, $home_dir);

$home_dir = $ENV{"HOME"};
$fileloc = $home_dir;
$fileloc .= "/.hush_profile";
4

1 に答える 1

4

あなたのコードのこの適応は私に期待される出力を与えます:

#!/usr/bin/perl -w
use strict;
my($fileloc);

my $home_dir = $ENV{"HOME"};
print "home_dir = $home_dir\n";
$fileloc = $home_dir;
print "fileloc 1 = $fileloc\n";
$fileloc .= "/.hush_profile";
print "fileloc 2 = $fileloc\n";

出力:

home_dir = /work4/jleffler
fileloc 1 = /work4/jleffler
fileloc 2 = /work4/jleffler/.hush_profile

$HOME私が環境で設定を解除したとしても、私は何かを得ます:

$ (unset HOME; perl x.pl)
Use of uninitialized value $home_dir in concatenation (.) or string at x.pl line 6.
home_dir = 
Use of uninitialized value $fileloc in concatenation (.) or string at x.pl line 8.
fileloc 1 = 
fileloc 2 = /.hush_profile
$

これはたまたまRHEL5(x86 / 64)上のPerl 5.12.1ですが、同じプラットフォーム上のPerl5.8.8でも同じようになります。

于 2012-11-12T02:43:35.333 に答える