我有一个脚本,它接受一个字符串并在字符串末尾添加“.html”。如果字符串已经有一个“.hmtl”,我想删除它,然后稍后添加 html。它可以正常工作,但我收到警告,但我不明白警告的含义。因此,如果我使用字符串 foo_foo.html 运行脚本,我不希望结果是 foo_foo.html.html,我会在 if 语句中输入
if ($input =~ s/\.html$//)
所以它从字符串中去掉了“dot html”
#!/usr/bin/perl
use strict;
use warnings;
# Check if a string is provided as an argument
if (@ARGV != 1) {
die "Usage: $0 'string'\n";
}
# Get the input string from the command line arguments
my $input = $ARGV[0];
if ($input =~ s/\.html$//) {
$input ;
}
# Convert all characters to lowercase
$input = lc($input);
# Replace spaces with underscores
$input =~ s/ /_/g;
# Print the modified string
print "<!--- \"$input.html\" -->\n";
print " \n";
print " \n";
print "$input.html"
我收到此警告
Useless use of private variable in void context at
./perl_make_html_string_cut_html.pl line 14.
脚本运行正常 - 只是警告困扰着我。
就是这个部分:
也许您是想在那里放一个打印语句?到目前为止,它只是 void 上下文中的一个变量,就像错误所说的那样。
你可以这样做:
并跳过 if 子句。我可能会添加
/i
标志以删除文本,无论大小写。如果您有一个显示行号的文本编辑器,您可以自己查看哪一行报告了错误。
你认为从这段代码中你得到了什么:
您不能仅从以下途径获得: