在perl中,如何仅沿着不带引号的分隔符拆分字符串?即以下字符串:
my $line = '"a quoted, comma", word1, word2';
Run Code Online (Sandbox Code Playgroud)
应该导致一个包含元素的数组:
"a quoted, comma"
word1
word2
Run Code Online (Sandbox Code Playgroud) 我是Perl编程的新手.我正在尝试拆分功能.这是我的代码:
#!perl;
use strict;
use warnings;
use Data::Dumper;
my @sections = ("Hard Drive", "Multi Drive");
foreach my $secname (sort @sections)
{
my $file_name=split / /, $secname;
print $file_name;
}
Run Code Online (Sandbox Code Playgroud)
所以我试图只输出第二个字的输出.
输出是
22
预期的产出是:
drive
drive
Run Code Online (Sandbox Code Playgroud)
在这里,我试图得到第二个字,但它没有给出预期的输出.
请有人建议并帮助我.
我正在将一些Perl代码转换为php,我偶然发现了一些东西,我不确定它是什么.
if(!$continenttxt_cached{$savedcontinentid.'_'.$savedcountrygroupid})
Run Code Online (Sandbox Code Playgroud)
{}支架在这做什么?这是以这种方式访问的标准数组元素吗?因为我只转换一个相当大的代码的一小部分,我找不到如何$continenttxt_cached定义,所以我只能假设这是一个数组.是{}用于其他在Perl的东西吗?
我需要使用Perl将纪元日期和时间字符串转换为UTC日期和时间.
请分享您的想法.
#!/usr/bin/perl
my $start_time='1448841600';
my $stop_time='1448863200';
Run Code Online (Sandbox Code Playgroud)
以上两个日期和时间采用纪元格式,应将其转换为UTC日期和时间.
我有这个字符串:
my $line = "MZEFSRGGRMEAZFE*MQZEFFMAEZF*"
Run Code Online (Sandbox Code Playgroud)
我想找到每个子字符串开头M和结尾*,而不是*在它们之内.这意味着上面的字符串会给我最后一个数组中的4个元素.
@ORF= (MZEFSRGGRMEAZFE*,MEAZFE*, MQZEFFMAEZF*,MAEZF*)
Run Code Online (Sandbox Code Playgroud)
一个简单的正则表达式不会做,因为它找不到重叠的子串.有一个简单的方法吗?
我试过
expr 0==false
Run Code Online (Sandbox Code Playgroud)
但它返回 0 而不是 1。
根据http://wiki.tcl.tk/16295,False 值是不区分大小写的单词 no、off、false、它们的唯一缩写和 0。
很奇怪,还是我的理解有误?
我在 Tcl 中有两个字符串。
set A "A-1 Precision Machining"
set B "Xyz & a"
Run Code Online (Sandbox Code Playgroud)
现在我想检查我的两个不同的输出是否完全匹配。
如果$A = $B与否。
我如何在 Tcl 中检查这个?
最初我使用:
if { [string match $B $A] }
Run Code Online (Sandbox Code Playgroud) 只是尝试在脚本中进行一些基本检查...如果$argc不是1或2 则产生错误.
我试过了:
if { ( $argc != 1 ) || ( $argc != 2 ) } {
puts "ERROR: \$argc should be either 1 or 2.\n"; exit 1
}
Run Code Online (Sandbox Code Playgroud)
和
if { ( $argc != 1 || $argc != 2 ) } {
puts "ERROR: \$argc should be either 1 or 2.\n"; exit 1
}
Run Code Online (Sandbox Code Playgroud)
等等
但无法使用任何括号/括号组合使其工作.
任何帮助将不胜感激.
我是Perl编程的新手.我注意到每次我想要声明一个新变量时,我都应该my在该变量之前使用该关键字,如果strict并且warnings打开(我被告知这样做,原因我也不知道.)
那么如何在不使用my和不使用警告的情况下在perl中声明变量?
我的问题是:是否有可能声明一个变量,而无需使用my并没有省略use strict;,并use warnings;和在没有得到所有的警告?
抱歉,如果这是一个骗局(我尝试了各种搜索方式!).这让我疯狂......
我需要快速修复以用空格替换Ã.
我尝试过以下方法,但没有成功:
$str =~ s/Ã/ /g;
$str =~ s/\xC3/ /g;
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?