如何在Perl中删除哈希值的最后七个字符?

24

我需要截取一个字符串的最后七个字符(该字符串存储在哈希表中)。在Perl中,最简单的方法是什么?非常感谢!


1
$hash{$key} = substr( $hash{$key}, 0, -7 ); # 假设在你的哈希表中是这样存储的,并且你想要替换它。 - Jim Black
3个回答

46

使用substr()函数:

substr($string, 0, -7);

建议您在将此代码复制粘贴到您的代码之前,先阅读我上面提供的substr() Perldoc页面。它可以达到您要求的效果,但是substr()是一个非常有用和多功能的函数,我建议您通过阅读文档了解其它用途。

另外,在未来,请先考虑通过谷歌搜索(或在Perl中查找Perldoc)您的问题,然后再在这里提问。您可以找到很好的关于此类问题的资源,而不必在这里提问。不是为了贬低您的问题,但它相当简单,如果您尝试一下,就可以自己找到答案。


4
在这种情况下,“perldoc -q string”会很有帮助。-q选项在常见问题解答中搜索,并导向“如何访问或更改字符串的N个字符?”其中包含Abdel所寻找的答案。 - user55400

14

要删除最后7个字符:

substr($str, -7) = '';

或者有点不太优雅的

substr($str, -7, length($str), '');
获取除了最后7个字符之外的所有字符:
substr($str, 0, -7)

6
使用Perl的substr函数,但将“length”参数设为负数。例如:
#!/usr/bin/perl

my $string = "string";
$short = substr($string, 0, -3);
printf $short . "\n";

由于我们指定了截取最后三个字符,因此这将返回带有换行符的字符串“str”。请参阅Perl文档中关于substr()函数的说明


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接