【发布时间】:2014-02-03 21:42:27
【问题描述】:
我正在读取一个包含不同长度字符串的文件,我必须在不同的开始和结束位置(从左到右)剪切。有时起始位置大于结束位置,这告诉我从右到左切割字符串。
我有以下代码。如果 $start 大于 $end,则不会创建子字符串。 substr 函数仅在 $end 大于 $start 时才有效。不知道为什么会这样。 如果我删除 IF/ELSE 语句,即使 $start 大于 $end,substr 也可以正常工作。任何帮助将不胜感激。
$start = 20;
$end = 10;
$len = 5
$string = "THISISALONGSTRINGTHATWILLNOTSPLICEUNLESSIREMOVETHEIFSTATEMENT";
if ($start > $end){
my $slice = substr($string, $end, $len);
}
else{
my $slice = substr($string, $start, $len);
}
【问题讨论】:
-
您的预期输出是什么?
-
我希望
$len = 5后面缺少的分号只是复制/粘贴错误。
标签: perl