【发布时间】:2019-04-19 20:39:44
【问题描述】:
我有一个字符串:
$str = "\$JVM/\$JAVA8/Contents/Home"
在这个字符串上,我想用这个哈希中的相应键替换符号 $JVM 和 $JAVA8:
%con = ('\$JVM' => '/Library/Java/JavaVirtualMachines' ,
'\$JAVA8' => 'jdk1.8.0_192.jdk');
这样我就可以得到这个:
$target = "/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home"
我想不使用任何模块。我怎样才能做到这一点?谢谢。
【问题讨论】:
-
如果你的字符串是
"$JVM/..." then you'll get a compile time error, because you don't have a$JVM`变量声明。双引号""使 Perl interpolate 变量。您可能没有在代码中写入此字符串,而是将其作为输入读取。这是完全不同的事情,如果你的问题改变了意义。请具体。 -
实际上,我从 %ENV 读取了那个 str。当从中读取时,它是 "$JVM/$JAVA8/Contents/Home" 但这不是问题。问题是找到一种实用的方法来用哈希表中的键值替换这些符号。谢谢。
标签: string perl substitution