当我尝试在正则表达式测试器中使用下面的简单替换时,它工作正常.但是当我在Perl代码中使用它时,ù它们没有被替换:
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
use File::Slurp;
my $file = 'test.html';
my $str = read_file($file);
$str =~ s/ù/u/g;
write_file("out/$file", $str);
Run Code Online (Sandbox Code Playgroud)
这是我想要更改的示例文本:
ùmbrella ùnder ùùùùù ùtters
Run Code Online (Sandbox Code Playgroud)
至
umbrella under uuuuu utters
Run Code Online (Sandbox Code Playgroud)
任何帮助和建议都非常感谢.
为什么我不能声明一个由所有数字组成的变量名,例如my $123;?
我知道这$1是一个与正则表达式相关的特殊变量.但$a也是一个特殊的变量(与之相关sort),我可以在我的代码中声明它,如下所示:
my $a;
Run Code Online (Sandbox Code Playgroud)
我为什么可以这样做而不是
my $1;
Run Code Online (Sandbox Code Playgroud)
要么
my $123;
Run Code Online (Sandbox Code Playgroud) 使用 Perl v5.10 我试图嵌套given语句 - 即在满足given初始when情况之一时调用语句。例子:
my $value = "test3";
my $subvalue = "subtest2";
my $content .= "\nvalue:";
given($value) {
when ('test1') { $content .= "test1" }
when ('test2 ) { $content .= "test2" }
when ('test3') {
given($subvalue) {
when ('subtest1') { $content .= "subtest1" }
when ('subtest2') { $content .= "subtest2" }
when ('subtest3') { $content .= "subtest3" }
when ('subtest4') { $content .= "subtest4" }
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
test3' 后的名称错误,位于 …
我有一个输入CSV文件.
model,taccode, date
1001,234ghy, 20151120
1002,hj3456,531908jh 20151120
1003,56789ui,78fgby,34s2fg,20151120
Run Code Online (Sandbox Code Playgroud)
当我使用,分隔符解析CSV文件时,我可以将行插入临时表.
while (<CSVFILE>) {
$line = $_;
($field1,$field2,$startDate)=split(/,/,trim($line));
if($field2 eq "")
{
$field2=0;
}
$Loaddatainsertsql->bind_param(1,$field1);
$Loaddatainsertsql->bind_param(2,$field2);
$Loaddatainsertsql->bind_param(3,$startDate);
$Loaddatainsertsql->execute ();
}
Run Code Online (Sandbox Code Playgroud)
表格中的数据输出:
model taccode date
1001 234ghy 20151120
1002 hj3456,531908jh 20151120
1003 56789ui,78fgby,34s2fg 20151120
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我.
为什么我在以下脚本中出现语法错误?
print "Enter Sequence:";
$a = <STDIN>;
if ($a=="A")|| ($a== "T")|| ( $a == "C")|| ($a== "G")
{
print $a;
}
else
{
print "Error";
}
Run Code Online (Sandbox Code Playgroud) 你如何for在Perl中编写循环?我试过以下无济于事:
my $i = 0;
for my $foo; do
$i=$[i+1];
done < bar;
Run Code Online (Sandbox Code Playgroud)