我用了一种能够扩大“不ix”环境变量的手稿。 该书记上课。 文字如下:
# I know this should not be typed here. This is here just for testing.
@ENV{qw(LKUP_DIR DATA_DIR CTRL_DIR MMM)} = qw(/appl1/TSS/lkup /appl1/TSS/data /appl1/TSS/ctrl Oct);
while ( <DATA> )
{
my $line=$_;
chomp $line;
$line =~ s{$(w+)}{ exists $ENV{$1} ? $ENV{$1} : $ .$1 }ge;
$line =~ s{${(w+)}}{ exists $ENV{$1} ? $ENV{$1} : ${ .$1. } }ge;
print "$line
";
}
__DATA__
${LKUP_DIR}/lookup_file.txt
${CTRL_DIR}/ctrl_file_$MMMM.txt
$CTRL_DIR/ctrl_file_$MMM.txt
我想将这一文字改为一行,但我不相信如何处理上文提及的文字中使用的固定表述中的单项报价。 我尝试如下,但当然不是:
perl -lne $line=$_; $line =~ s{$(w+)}{ exists $ENV{$1} ? $ENV{$1} : $ .$1 }ge; $line =~ s{${(w+)}}{ exists $ENV{$1} ? $ENV{$1} : ${ .$1. } }ge; print "$line"; DATA.txt
Any suggestions? (I want to do this only in Perl.)