在这个Perl脚本中,“无效使用void上下文中的变量”是什么意思?
发布时间:2020-12-16 06:10:11 所属栏目:大数据 来源:网络整理
导读:下面的脚本给了我我想要的东西,但Perl也向我发出警告说“在void上下文中无用的使用变量”.这是什么意思? use strict;use warnings;my $example = 'httpu003a//mainu002egslbu002eku6u002ecom/c0/q7LmJPfV4DfXeTYf/1260269522170/93456c39545857a1524497
下面的脚本给了我我想要的东西,但Perl也向我发出警告说“在void上下文中无用的使用变量”.这是什么意思?
use strict; use warnings; my $example = 'httpu003a//mainu002egslbu002eku6u002ecom/c0/q7LmJPfV4DfXeTYf/1260269522170/93456c39545857a15244971e35fba83a/1279582254980/v632/6/28/a14UAJ0CeSyi3UTEvBUyMuBxgu002ef4vu002chttpu003a//mainu002egslbu002eku6u002ecom/c1/q7LmJPfV4DfXeTYf/1260269522170/3cb143612a0050335c0d44077a869fc0/1279582254980/v642/10/20/7xo2MJ4tTtiiTOUjEpCJaBygu002ef4vu002chttpu003a//mainu002egslbu002eku6u002ecom/c2/q7LmJPfV4DfXeTYf/1260269522170/799955b45c8c32c955564ff9bc3259ea/1279582254980/v652/32/4/6pzkCf4iqTSUVElUA5A3PpMAoAu002ef4vu002chttpu003a//mainu002egslbu002eku6u002ecom/c3/q7LmJPfV4DfXeTYf/1260269522170/cebbb619dc61b3eabcdb839d4c2a4402/1279582254980/v567/36/19/MBcbnWwkSJu46UoYCabpvArAu002ef4vu002chttpu003a//mainu002egslbu002eku6u002ecom/c4/q7LmJPfV4DfXeTYf/1260269522170/1365c39355424974dbbe4ae8950f0e73/1279582254980/v575/17/15/EDczAa0GTjuhppapCLFjtaQu002ef4v'; my @raw_url = $example =~ m{(httpu003a.+?f4v)}g; my @processed_url = map { s{u003a}{:}g,$_; s{u002e}{.}g,$_; s{u002d}{@}g,$_; } @raw_url; print join("n",@processed_url); 如果我省略这样的美元下划线,为什么这个地图的东西不起作用呢? my @processed_url = map { s{u003a}{:}g; s{u002e}{.}g; s{u002d}{@}g; } @raw_url; 当我省略那些美元下划线时,除了可能的成功标志“1”之外我什么也得不到.我错过了什么?有任何想法吗?总是如此谢谢:) 解决方法
你想要的是……
my @processed_url = map { s{u003a}{:}g; s{u002e}{.}g; s{u002d}{@}g; $_; } @raw_url; A map block返回由作为结果计算的最后一个语句组成的值.这就是为什么我们传递$_作为最后一个声明.替换运算符s{}{}返回所做的替换次数. 在您之前的设置中,您自己拥有以下语句.这几乎毫无意义,这正是Perl警告的内容. s{u003a}{:}g,$_; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |