- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
几个月来,我一直在使用类似以下的语法,而没有触发警告:
die join('', sprintf(Dumper [@stack]), sprintf(Dumper {%oprAtnNOW}), 'opt tojudge not specified');
也就是我用过
sprintf
与
Dumper
, 不指定格式。
%oprAtnNOW
包含一个长字符串,则触发警告。
sprintf
应该给出一个格式,如
#!/usr/bin/perl
use strict; use warnings;
use Data::Dumper qw(Dumper);
$Data::Dumper::Sortkeys = 1;
print "Perl version: $^V\n";
my %oprAtnNOW;
my $string='~~~~~1983-10-21 Fri 13:01:13, today we went to the movie.';
%oprAtnNOW = (
Vv => {
v=>[ '(?<a>a)',],
},
);
tryit();
%oprAtnNOW = (
Vv => {
v=>[
'(?m)^(?<boundjour2009>(?<tilde5>[~]{5})[\\x20\\t]*(?<dateISO1mbeWeekdaymbeTIME>(?<dateISO1mbeWeekday>(?<dateISO1>(?<YYYY>[1-9]\\d\\d\\d)[-](?<nMonth2>0[1-9]|1[0-2])[-](?<nMonthDay2>3[01]|[0-2][0-9]))([\\x20\\t]+(?<wWeekdayAllor3>Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat))?)([\\x20\\t]+(?<nTIMEdiverse>(at[\\x20\\t]+)?((?<HHcMMcSS>(?<HH>0[0-9]|1[0-9]|2[0-3]):(?<MM>[0-5][0-9]):(?<SS>[0-5][0-9]))|(?<HHMMmbeSS>(?<HHMM>(?<HH>0[0-9]|1[0-9]|2[0-3])(?<MM>[0-5][0-9]))(?<SS>[0-5][0-9])?)|(?<HHcMM_pct_cSS>(?<HH>0[0-9]|1[0-9]|2[0-3]):(?<MM>[0-5][0-9])%:(?<SS>[0-5][0-9]))|(?<HHcMM_stop>(?<HH>0[0-9]|1[0-9]|2[0-3]):(?<MM>[0-5][0-9])(?![:][0-5][0-9])))))?))',
],
},
);
tryit();
sub tryit
{
my $rgx=qr/$oprAtnNOW{Vv}->{v}->[0]/;
if($string=~$rgx)
{
print Dumper \%+;
}
print "with format:\n";
print sprintf('%s', Dumper \%oprAtnNOW);
print "WITHOUT format:\n";
print sprintf(Dumper \%oprAtnNOW);
}
输出:
Perl version: v5.18.4
$VAR1 = {
'a' => 'a'
};
with format:
$VAR1 = {
'Vv' => {
'v' => [
'(?<a>a)'
]
}
};
WITHOUT format:
$VAR1 = {
'Vv' => {
'v' => [
'(?<a>a)'
]
}
};
$VAR1 = {
'HH' => '13',
'HHcMMcSS' => '13:01:13',
'MM' => '01',
'SS' => '13',
'YYYY' => '1983',
'boundjour2009' => '~~~~~1983-10-21 Fri 13:01:13',
'dateISO1' => '1983-10-21',
'dateISO1mbeWeekday' => '1983-10-21 Fri',
'dateISO1mbeWeekdaymbeTIME' => '1983-10-21 Fri 13:01:13',
'nMonth2' => '10',
'nMonthDay2' => '21',
'nTIMEdiverse' => '13:01:13',
'tilde5' => '~~~~~',
'wWeekdayAllor3' => 'Fri'
};
with format:
$VAR1 = {
'Vv' => {
'v' => [
'(?m)^(?<boundjour2009>(?<tilde5>[~]{5})[\\x20\\t]*(?<dateISO1mbeWeekdaymbeTIME>(?<dateISO1mbeWeekday>(?<dateISO1>(?<YYYY>[1-9]\\d\\d\\d)[-](?<nMonth2>0[1-9]|1[0-2])[-](?<nMonthDay2>3[01]|[0-2][0-9]))([\\x20\\t]+(?<wWeekdayAllor3>Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat))?)([\\x20\\t]+(?<nTIMEdiverse>(at[\\x20\\t]+)?((?<HHcMMcSS>(?<HH>0[0-9]|1[0-9]|2[0-3]):(?<MM>[0-5][0-9]):(?<SS>[0-5][0-9]))|(?<HHMMmbeSS>(?<HHMM>(?<HH>0[0-9]|1[0-9]|2[0-3])(?<MM>[0-5][0-9]))(?<SS>[0-5][0-9])?)|(?<HHcMM_pct_cSS>(?<HH>0[0-9]|1[0-9]|2[0-3]):(?<MM>[0-5][0-9])%:(?<SS>[0-5][0-9]))|(?<HHcMM_stop>(?<HH>0[0-9]|1[0-9]|2[0-3]):(?<MM>[0-5][0-9])(?![:][0-5][0-9])))))?))'
]
}
};
WITHOUT format:
Missing argument in sprintf at /Users/kpr/u/kh/bin/z.pl line 38.
Invalid conversion in sprintf: "%:" at /Users/kpr/u/kh/bin/z.pl line 38.
$VAR1 = {
'Vv' => {
'v' => [
'(?m)^(?<boundjour2009>(?<tilde5>[~]{5})[\\x20\\t]*(?<dateISO1mbeWeekdaymbeTIME>(?<dateISO1mbeWeekday>(?<dateISO1>(?<YYYY>[1-9]\\d\\d\\d)[-](?<nMonth2>0[1-9]|1[0-2])[-](?<nMonthDay2>3[01]|[0-2][0-9]))([\\x20\\t]+(?<wWeekdayAllor3>Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat))?)([\\x20\\t]+(?<nTIMEdiverse>(at[\\x20\\t]+)?((?<HHcMMcSS>(?<HH>0[0-9]|1[0-9]|2[0-3]):(?<MM>[0-5][0-9]):(?<SS>[0-5][0-9]))|(?<HHMMmbeSS>(?<HHMM>(?<HH>0[0-9]|1[0-9]|2[0-3])(?<MM>[0-5][0-9]))(?<SS>[0-5][0-9])?)|(?<HHcMM_pct_cSS>(?<HH>0[0-9]|1[0-9]|2[0-3]):(?<MM>[0-5][0-9])%:(?<SS>[0-5][0-9]))|(?<HHcMM_stop>(?<HH>0[0-9]|1[0-9]|2[0-3]):(?<MM>[0-5][0-9])(?![:][0-5][0-9])))))?))'
]
}
};
最佳答案
这不是因为长度,而是因为长字符串包含一个百分号。
...(?<MM>[0-5][0-9])%:(?<SS>[0-5][0-9]))...
~
因为它是唯一的参数,所以它被解释为格式。
sprintf '%';
如果您不需要格式化,只需使用
print
:
print Dumper \%oprAtnNOW;
关于perl - 在 perl 中,为什么当哈希包含长字符串时 sprintf(Dumper\%hash) 会抛出警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68500372/
本质上,我正在寻找的是一个允许我做这样的事情的函数: 自卸车(some_obj);/* 输出 some_objs 的数据结构 */ 谢谢。 最佳答案 C 不支持开箱即用的任何类型的反射。从某种意义上说
我看过标题非常相似的帖子 ( Is there a C equivalent to Perls' Dumper() method in Data::Dumper? ),关于 C 等效于 Data::D
在 Perl 中我需要分析一个巨大的散列,所以我使用 Data::Dumper 将它打印到一个文件中。模块。因为它是一个巨大的文件,所以很难阅读。是否有可能以某种方式打印 Dumper输出很好,所以当
我在使用 Data::Dumper 尝试检查我将大量数据导入哈希时遇到了一个相当奇怪的问题。 我的数据在另一个文件中看起来像这样。 ##Product ID => Market for product
已阅读 this question和 this question关于 my $var 之间的差异和 my ($var) ,我仍然无法理解为什么 Data::Dumper 模块在其代码的以下摘录中使用括
我正在尝试使用 XML::Dumper 序列化以下数据结构 'options_settings' => { 'telnet.distinct.enable' => { 'text' =>
只是感兴趣:在下面的代码片段中,有没有办法做第二种形式的Dumper? use Modern::Perl; use Data::Dumper::Simple; my $data = { name =>
如果我注释掉 Dumper($cmd_string)然后是 while循环永远不会被采用。 Dumper() 对 $cmd_string 有什么副作用? 这是子调用之前 $cmd_string 的内容
我尝试eval Dumper 的输出以获得非常简单的哈希引用,其中两个键具有相同的值(引用另一个哈希): #!/usr/bin/env perl use strict; use warnings; u
当运行这样的代码时: use strict; print Dumper "something"; 在编译和运行期间没有打印出任何错误。为什么会这样?为什么 strict 不阻止这段代码运行?为什么在运
问题:获取 Perl 的 YAML::Dumper发出 {key=>"-"} 作为 key: "-" 而不是 key: - 我正在处理来自数据库行的哈希值,使用 SOAP 读取它们并将它们转换为 YA
假设我有一个使用 Data::Dumper 创建的文本文件,大致如下: my $x = [ { foo => 'bar', asdf => undef }, 0, -4, [ [] ] ]; 我想读回
foreach my $row (1..$end) { foreach my $col (3..27 ) { # skip empty cells next unless d
我正在使用 Data::Dumper::Dumper()方法。输出很好,但可以做得更紧凑,更美观。 我怎么能控制它?什么是更好的选择? 最佳答案 看看Data::Dump对于类似于 Data::Dum
我正在使用Data::Dumper打印带有配置的perl哈希,该哈希将由另一个脚本进行评估。问题在于它总是在输出开始时打印$VAR =。我尝试将Varname参数设置为空字符串,但是随后我得到了$1而
我想转储我的对象和散列的值,但它一直在无序打印键。如何以(递归)排序顺序转储键? use Data::Dumper; print Dumper $obj; 最佳答案 套装$Data::Dumper::
我正在使用 Data::Dumper 和 Data::Dumper::Simple(DD 和 DDS)以脚本的详细模式打印哈希,我希望能够与可能没有的其他人分享它这些模块已安装,所以我正在检查它们是否
我有一个程序,可以使用 XML::Simple 解析一些 XML。在某些时候,XML 中似乎有多余的条目被序列化,但我一生都无法弄清楚如何将该数据作为简单的字符串返回。该 XML 的一个子集似乎被 X
今晚我一直在努力解决这个问题。我已经用谷歌搜索了它,但没有一个例子或我对这些例子的黑客完成它。看起来这应该很容易,但我就是无法理解。这是代码: #!/usr/bin/perl -w use stric
刚接触 Python,我震惊地发现似乎没有明显的方法来正确检查数据结构,您可以使用 Perl 的 Data::Dumper 模块。 例如,pprint 将显示一个对象的 __repr__ 返回值,而不
我是一名优秀的程序员,十分优秀!