首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Perl的foreach中,$ _比命名变量更有效吗?

在Perl的foreach中,$ 是一个特殊的变量,它表示当前的迭代变量。它的使用可以使代码更简洁,但是在某些情况下,使用命名变量可能会使代码更易读和维护。因此,$ 的使用取决于具体情况和编程风格。

在Perl的foreach中,$ 的使用可以使代码更简洁,但是在某些情况下,使用命名变量可能会使代码更易读和维护。因此,$ 的使用取决于具体情况和编程风格。

例如,在以下代码中,$ _可以用来打印列表中的每个元素:

代码语言:txt
复制
my @list = (1, 2, 3, 4);
foreach (@list) {
    print "$_\n";
}

但是,在以下代码中,使用命名变量可能会使代码更易读和维护:

代码语言:txt
复制
my @list = (1, 2, 3, 4);
foreach my $element (@list) {
    print "$element\n";
}

因此,$ _的使用取决于具体情况和编程风格。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Bash,双方括号]单方括号受推荐

问: 一位同事最近在代码审查声称,如下结构通常应该优先选择使用 [[ ]] 结构而不是 [ ]。...单词分割和通配符展开: [[ ]] 内部,变量扩展不会发生单词分割(根据空格或其它 IFS 字符将字符串拆分成单词)和文件名扩展(通配符展开)。...这意味着下面使用 [[ ]] 代码不需要引号来包围变量扩展: if [[ $(id -nu) = $someuser ]]; then echo "I love you, $someuser...安全条件表达式:由于 [ ] 实际上是 test 命令别名,某些表达式可能会意外地作为文件测试操作。 [[ ]] ,这种混淆可能性较小。...总之,尽管 [[ ]] 不遵守 POSIX 标准,因此 Bash 之外环境可移植性较差,但它确实为 Bash 脚本条件表达式提供了一个更强大功能集。

10710

函数局部程序(像是局部变量还局部部分)

我们都知道局部变量一个函数内部定义变量,它只本函数范围内有效,也就是说只有本函数内才能使用它们,在此函数以外是不能使用这些变量。...一个函数内部定义变量本函数范围内有效,也就是只有本函数内才能引用它们,在此函数外不能使用这些变量。...复合语句内定义变量只能在本复合语句范围内有效,只有本复合语句内才能引用他们,该复合语句外不能使用这些变量。还有就是函数形参,只该函数内有效。...而全局变量有效范围为从定义变量位置开始到本源文件结束。 但还有一种形式局部变量不是以函数为限制,而是以括号为限制,局部代码。 {}代码,输入局部变量括号外面不能调用。...实例: #include int main() { int a=5; //{}代码,输入局部变量括号外面不能调用 { int a=1; printf("%d\n"

1.1K20

你知道Javafinal和static修饰变量什么时候赋值

那就意味着只有static修饰变量才会在class文件对应字段表加上ConstantValue属性? 答案是否定。...验证:验证字节码格式,确保Class文件字节流包含信息符合当前虚拟机要求,并且不会危害虚拟机自身安全。 准备:创建类或者接口静态字段,并为静态变量设置初始值。...仅使用static修饰:方法赋值。这个方法类加载初始化阶段执行。...网上博客不都是类加载准备阶段会对普通类属性赋初始值,对带有ConstantValue类属性直接赋值? 《深入理解Java虚拟机》也是这样说啊? 书上是错?...《深入理解Java虚拟机》是作者根据自己理解,结合HotSpot VM具体实现,为了让读者容易理解JVM而写一本书。 写在最后 ---- 本人才疏学浅,OpenJdk源码也理解不够透彻。

1.7K20

Perl正则表达式超详细教程

perl,对于需要参数函数或表达式,但却没有给参数,这是将会使用perl默认参数变量$_。...,每一行都是列表一个元素; line称为控制变量foreach每次迭代过程中都会选中一个列表元素赋值给line,例如将读取每一行都赋值给 可以省略line,这时就采用默认参数变量_,所以以下两个表达式是等价...,N,它们和\1,\2,...\N匹配成功时结果上没有区别,但是\N这种类型反向引用只正则匹配中有效,正则匹配结束后就消亡了,而N因为是perl变量,即使正则已经退出匹配,也依然可以引用。...perl更强大分组捕获 perl,支持分组捕获更强大、完整,它除了支持普通分组(也就是直接用括号分组),还支持: 命名捕获(?...)...perl提供了qr/pattern/功能,它把pattern部分构建成一个正则表达式对象,然后就可以正则表达式中直接引用这个对象,方便是可用将这个对象保存到变量,通过引用变量方式来引用这个以保存好正则对象

6.1K30

Perl语言入门系列之二

可以命令行输入命令“perl -v”来查看当前版本,运行结果如下所示: ⑷foreach控制结构 foreachPerl对数组或列表进行处理一种循环结构,其含义是从列表或数组逐项取值赋值给控制变量...⑷私有变量 上述@_实际上就是子程序私有变量,只会在子程序内部有效,也不会与子程序外已存在@_干扰。实际编写,我们一般不喜欢大量使用下标,可以将子程序参数赋值给自定义私有变量。...一般情况下,Perl所有变量都是全局变量,要想创建局域有效私有变量可以借助my来实现,上述子程序可以继续改写为如下格式: sub max{    my ($m, $n) = @_;    if (...事实上,my私有变量设置不只是子程序,也可以是if、while、foreach语块,事实上,日常编程中最好对每个新变量都是用my声明,使其保持自己所在模块区域内,对Perl 5.10以上版本尤为如此...系统环境变量,仅在该Perl程序运行时有效

1.2K30

我可以不source脚本情况下将变量从Bash脚本导出到环境

但是有几种可能解决办法。 最明显方法,你已经提到过,是使用 source 或 ....调用 shell 上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是脚本打印设置环境变量命令.../set-vars2.sh)" $ echo "$FOO" BAR 终端上执行 help export 可以查看 Bash 内置命令 export 帮助文档: # help export export...-f 指 shell 函数 -n 从每个(变量)名称删除 export 属性 -p 显示所有导出变量和函数列表 ---- 参考: stackoverflow question 16618071...help eval 相关阅读: 用和不用export定义变量区别 shell编程$(cmd) 和 `cmd` 之间有什么区别 ----

15720

Perl语言入门》——读书笔记

建议屏幕长程序都加上use strict; 第五章 输入与输出 行输入操作符 唯独while/foreach循环条件表达式只有行输入操作符前提下,这个简写才起作用: while (<STDIN...列表上下文中,会返回一个列表: @line = ; while与foreach区别:while循环里,Perl会读取一行输入,把他存入某个变量并执行循环主体,接下来它会回头去寻找其他输入行...但是foreach循环里,行输入操作符会在列表上下文中执行(因为foreach需要逐项处理列表内容,因此会一次性读取所有输入) 钻石操作符 不指定文件句柄时候,默认检查@ARGV: while...(可以理解为字符特征?)...智能匹配和given-when结构 # 将参数放入_,同时每个when条件都尝试用表达式匹配对_做测试 given( foreach中使用when foreach ( @names ) # 不要使用具名变量

2.5K20

精心总结 Python『八宗罪』,邀你来吐槽

如果你不知道「BeautifulSoup」这个库是干什么,那么你能从命名看出来它是一个 HTML/XML 解析器?...总的来说,我认为 Python 是一个具有不一致命名约定函数库集合。我经常抱怨开源项目的命名非常可怕。除非你知道这些项目干什么,否则你从命名本身什么都看不出来。...但是,双引号里字符串可以嵌入变量。相比之下,单引号字符串是文字;任何嵌入类似变量名称都不可扩展。 JavaScript ,单引号和双引号没什么区别。... Python ,你必须通过值来传递变量,例如「a=b」只是给相同对象空间分配了另一个命名,但并没有复制 b 值给 a。...gcc -o screencapture.exe screencapture.c -lscreencapture C、Java、JavaScript、Perl、PHP 等语言中,这通常很有效,因为这些语言可以轻易地辨别本地程序和资源库

1.1K20

为什么Lisp语言如此先进?(译文)

Lisp和Ruby版本,有更多语法元素,因为Perl语言中,你不得不手工提取参数。...^[:i| s := s+i. ] 因为Smalltalk,局部变量(lexical variable)是有效,但是你无法给一个参数赋值,因此不得不设置了一个新变量,接受累加后值。...Perl和Python较量,Python黑客观点似乎是认为PythonPerl更优雅,但是这个例子表明,最终来说,编程能力决定了优雅。...Perl写法简单(包含更少语法元素),尽管它语法有一点丑陋。 其他语言怎么样?...Python例子,这样处理方法已经开始出现了,我们实际上就是自己写代码,模拟出编译器实现局部变量功能。 这种实践不仅很普遍,而且已经制度化了。

1.2K60

OpenGL ES 3.0 | 统一变量和属性概念与(程序)获取流程、统一变量缓冲区对象详解、std140块规范、用 命名统一变量块 建立 统一变量缓冲区对象 流程 和 相关API 和...

第二类是默认统一变量块,用于命名统一变量块之外声明统一变量; 和命名统一变量块不同, 默认统一变量块没有名称 或者 统一变量块索引; ?...如果统一变量顶点着色器和片段着色器均有声明, 则声明类型必须相同,且两个着色器值也需相同; 链接阶段,链接程序将为程序 与 默认统一变量块相关 活动统一变量指定位置; 这些位置是 应用程序...用于 加载 统一变量标志符; 链接程序 还将为与 命名统一变量块 相关 活动统一变量 分配 偏移和跨距(对于数组和矩阵类型统一变量) 获取统一变量 查询程序 活动统一变量列表(/ 数量..., 以统一变量缓冲区对象设置统一变量数据。...(如下)可能使 某些OpenGL ES 3.0实现 以std140布局 更紧凑方式 打包数据】 ?

1.8K20

Python新手指南,教你如何变编程大佬级别的

Monty Python飞行马戏团(Flying Circus)之后命名了他新语言,这是一个他喜欢流行英国素描喜剧。...Python使用动态类型,这意味着程序员使用它们之前不需要花费时间来定义它们变量。因此,Python代码通常用于相同目的Java代码短3-5倍。...与C ++比较更为有利; Python代码最多可以C ++等效代码短10倍。...但是,Python设计Perl容易阅读,使程序员能够有效地共享,调试和维护代码。另一方面,Perl对于面向应用程序任务有很多有用功能,比如内置正则表达式。...Python游戏行业有着巨大应用。例如,Eve Online(一个基于天空MMORPG)客户端和服务器端都广泛使用Python。运行MMPORG需要一个强大语言,可以有效地管理资源。

90580

Perl正则表达式:正则匹配

\n"; } 上面代码如果不加//m修饰符则^只会匹配字符串开头从而匹配失败。此外还有另一种严谨锚位方法,使用\A、\Z、\z锚定字符串开头、每一行末尾、字符串结尾。...事实上,Perl会自动将这些圆括号内捕获组储存在称为捕获变量标量变量里面,其变量名与反向引用编号一样都是数字,其命名与捕获组编号相同,也即$1、$2…。...模式当中有多少圆括号,就有多少捕获变量,这些变量正则表达式匹配完成之后仍可以使用,捕获变量Perl正则表达式强大原因之一。...从Perl 5.10开始,允许用户为捕获变量自定义命名,称为标签(label),其写法为相应捕获组括号里最开头添加问好?和label,也即(?正则表达式)。...这三个捕获变量可以随意使用,但代价是会使程序运行变慢。Perl 5.10及以上版本,这三个变量有另一种形象写法${^PREMATCH}、${^MATCH}、${^POSTMATCH}。

4.1K10

Perl语言程序应用(资料汇总版)

"One character is: $1\n"; } for循环中,替换操作(注意实际上是_ =~ s/^(.)//)依次替换_首字母,直至全部替换完毕退出循环,运行如下所示: Perlfor...,然而一个裸块私有变量都是仅限于裸块内部有用,因此裸块控制结构起到划分代码层次作用。...⑸自增自减 控制结构尤其是循环结构中常常用到变量自增与自减,需要用到自增操作符(++,变量加1)与自减操作符(--,变量减1),如下所示: my $n = 3; #变量初始化 $n++;...\n"; } while循环中钻石操作符按行读取参数文件并将内容存入$_,foreach循环中将外层$_内容按空格进行拆分成列表并将每一部分依次存入内层$_,内层循环中标量变量和哈希其初始值均为undef...if (expr1 || expr2) {} #两个表达式至少一个为真则执行模块 Perl模块 Perl不断发展过程,世界各地用户为了解决各种棘手问题,积累了大量已经成熟开源Perl

3.6K30

WordPress PHP 编码规范

,并且容易添加新元素,因为不用关注之前最后一个是否有逗号。....= 'X' 控制语句中左括号和右括号两侧防止空格: foreach ( $foo as $bar ) { ......命名约定 变量名,action/filter 名称和函数名使用小写,不要使用驼峰式,通过下划线分割单词, 如非必需不要使用缩写,让代码无歧义并能自我说明: function some_name( $...HooK 标签中使用变量应该用大括号 { 和 } 括起来,完整外部标签名称用双引号括起来。这是为了确保 PHP 可以正确解析内插字符串给定变量。...如果双方都不是变量,则顺序并不重要。 (计算机科学术语比较总是尝试将 l 值放在右侧,将 r 值放在左侧。)

5.5K40

畅谈百年编程语言

比如说,Fortran 明显 C 快得多。这种需求和开发者社区一直推动着 Fortran 发展。 这就很有意思了:我们说一种百年编程语言时,并非指它语法和特性延续。...C 语言操作系统和驱动程序退居一席之地,因此它现在被从一般应用程序编程驱逐出去。 小众力量是强大。 我不会说“Java 是终极通用语言,永远都是。”...这就是这种语言意义所在吗?这就是它关注点? 性能并不是一件坏事。但如果你向 Fortran 社区询问,“你需要编译器实现简单?”他们会说“不关心”。...说来也怪,早期 LISP 也做了类似的事情,这就是为什么“列表头”/“列表尾”仍然被命名为“car”/“cdr”,以古老 IBM 704 上机器寄存器命名。... Fortran ,他们不把可表达性看得速度更重要。而在 Ruby ,他们很重视。 Rust ,内存安全是最重要 C 语言中,能够以奇怪方式处理内存,远比安全更重要得多。

25130

IC入职新同学必备技能手册 - Perl (1)

PERL 马上开始 推荐一个online Perl editor,随写随执行,我经常用来验证吃不准写法(间接说明Perl蛋疼),免费。...注意,本文并没有提供特高级Perl套路,仅仅用于普通IC工程师普通操作。 套路1:变量 Perl语言其实没有数据类型区别,任何数据(整数、浮点数、字符、字符串)都一视同仁,随便处理。...Perl根据数据组织形式,分为标量($)、数组(@)、哈希量(%) 变量有作用域区别,一般my表示局部变量(怎么局部,以code block决定,或者不管它,无脑my->my过一次就不能再my了。。...$_ $_ # 可以将它理解为, #当前代码块默认变量 # 尤其常用于foreach # example my @arr = (a, b, c); # 定义数组,字符可以忽略引号...Perl子函数,没有C那样参数列表, # 想传什么就传什么 # 具体例子函数套路中讲解 die / unless die # 其实就是强制异常退出 # 比如 die ("Error happened

88610

「译」代码整洁之道 7 个方法

函数越复杂,命名就越难… 我有个法子让命名容易,举个例子:有一个函数,它会合并两个数组并生成一个新唯一数字列表。你会怎么命名?是下面这样?...命名难点在于这个函数要做两件事:一个函数做事情越多,命名它就越困难。将这个函数拆分为两个单独函数,命名容易且函数复用容易。...那将是整个范围唯一 name 属性?属性名又来自哪个对象? 通过重命名属性可避免这些问题。...每个人都知道变量是 organizer 名字。 童子军规则 听过这样一句话:“永远保持离开时露营地比你发现它时整洁”? 这就是童子军规则。让代码发现时更好。...但作为一名全职开发人员,我不同代码库上工作。这些规则重要性只有较大代码库才会突显。但这并不意味着你不应该将这些方法用在小项目中,提高你代码质量让小项目更高效。

65220

探索Perl语言:入门学习与实战指南

探索Perl语言:入门学习与实战指南Perl是一种高效、功能强大脚本语言,自20世纪80年代以来系统管理、文本处理和Web开发领域得到了广泛应用。...安装完成后,命令提示符输入perl -v,验证安装是否成功。macOSmacOS通常自带Perl,可以通过终端输入perl -v查看版本信息。...三、基本语法与数据类型标量变量Perl标量变量以$符号开头,用于存储单一值(字符串、数字或引用)。...Perl以其灵活性、高效性和强大文本处理能力,各种编程任务中都有着广泛应用。希望本文能够帮助你快速入门并掌握这门强大编程语言,开启Perl编程之旅。...无论是系统管理、Web开发还是数据处理领域,Perl都将是你得力助手。 最后,愿大家都可以解决工作中和生活遇到难题,剑锋所指,所向披靡~

1610
领券