Perl开关没有正常掉落?

Perl开关没有正常掉落?,第1张

概述我有一个我想测试的值($field).阅读perl doc( http://perldoc.perl.org/Switch.html#Allowing-fall-through),并认为我有这个钉.似乎没有,因为如果我通过’Exposure Bias’,就没有输出,尽管’Exposure Bias Value’可以正常工作.它没有抛出任何错误,所以我不知道. use Switch;use str 我有一个我想测试的值($fIEld).阅读perl doc( http://perldoc.perl.org/Switch.html#Allowing-fall-through),并认为我有这个钉.似乎没有,因为如果我通过’Exposure Bias’,就没有输出,尽管’Exposure Bias Value’可以正常工作.它没有抛出任何错误,所以我不知道.

use Switch;use strict; use warnings;my $fIEld = 'Exposure Bias';switch($fIEld){    case 'Exposure Bias' {next;}    case 'Exposure Bias Value' {print "Exp: $fIEld\n";}}

更新

我似乎假装错了.如果匹配任何一种情况,我想用这个开关做的是打印运行.我认为接下来会将控制权传递给下一个案例的代码,但这是我的错误.

我如何对此进行编码,以便在第一种情况匹配时第二种情况下的代码运行?

工作方案

given($fIEld){    when(['Exposure Bias','Exposure Bias Value']){print "Exp: $fIEld\n";}}
解决方法 DVK关于为什么你的开关没有按预期工作的评论是正确的,但是他忽略了提及一种更好,更安全的方式来实现你的开关.

Switch使用source filters和has been deprecated构建,最好避免使用.如果您正在使用Perl 5.10或更高版本,请使用given和when来构建switch语句:

use strict;use warnings;use feature qw(switch);my $fIEld = 'Exposure Bias';given($fIEld) {    when ([         'Exposure Bias','Exposure Bias Value',]) {        print 'Exp: ' . $fIEld . "\n";     }}

有关详细信息,请参阅perlsyn.

总结

以上是内存溢出为你收集整理的Perl开关没有正常掉落?全部内容,希望文章能够帮你解决Perl开关没有正常掉落?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1266531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存