首页
学习
活动
专区
工具
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 脚本中的条件表达式提供了一个更强大的功能集。

12510

在函数中的局部程序(像是比局部变量还局部的部分)

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

1.1K20
  • 你知道Java中final和static修饰的变量是在什么时候赋值的吗?

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

    1.8K20

    Perl正则表达式超详细教程

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

    6.2K30

    Perl语言入门系列之二

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

    1.3K30

    我可以在不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` 之间有什么区别 ----

    18020

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

    建议比屏幕长的程序都加上use strict; 第五章 输入与输出 行输入操作符 唯独while/foreach循环的条件表达式中只有行输入操作符的前提下,这个简写才起作用: while (在列表上下文中,会返回一个列表: @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黑客的观点似乎是认为Python比Perl更优雅,但是这个例子表明,最终来说,编程能力决定了优雅。...Perl的写法更简单(包含更少的语法元素),尽管它的语法有一点丑陋。 其他语言怎么样?...在Python的例子中,这样的处理方法已经开始出现了,我们实际上就是自己写代码,模拟出编译器实现局部变量的功能。 这种实践不仅很普遍,而且已经制度化了。

    1.2K60

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

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

    1.9K20

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

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

    94180

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

    "One character is: $1\n"; } 在for循环中,替换操作(注意实际上是_ =~ s/^(.)//)依次替换_中的首字母,直至全部替换完毕退出循环,运行如下所示: 在Perl中for...,然而一个裸块中的私有变量都是仅限于裸块内部有用,因此裸块控制结构起到划分代码层次的作用。...⑸自增自减 在控制结构尤其是循环结构中常常用到变量的自增与自减,需要用到自增操作符(++,变量加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

    Perl正则表达式:正则匹配

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

    4.2K10

    畅谈百年编程语言

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

    27830

    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

    91810

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

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

    66420

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

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

    6610
    领券