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

Perl的printf width修饰符在map运算符中不起作用

。在Perl中,printf函数用于格式化输出,width修饰符用于指定输出字段的宽度。然而,在map运算符中,它不会对输出产生影响。

Map运算符是Perl中的一个高阶函数,用于对列表或数组中的每个元素应用一个表达式,并返回结果列表。它的语法如下:

map EXPR, LIST

在map运算符中,EXPR是一个表达式,用于对LIST中的每个元素进行处理。然而,width修饰符只能应用于具体的输出语句,例如printf函数或sprintf函数,而不是表达式。

如果想要在map运算符中控制输出的宽度,可以使用其他方法,例如使用sprintf函数来格式化输出,并将格式化后的字符串作为结果返回。示例代码如下:

my @list = (1, 2, 3, 4, 5);

my @formattedlist = map { sprintf("%5d", $) } @list;

在上述代码中,sprintf函数将每个元素格式化为5位宽度的字符串,并将格式化后的字符串作为结果返回。最终,@formatted_list将包含格式化后的元素。

需要注意的是,printf width修饰符在map运算符中不起作用,并不意味着它在其他上下文中无效。在其他输出语句中,如printf函数或sprintf函数,width修饰符仍然可以用于控制输出的宽度。

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

相关·内容

#if #ifdef和#ifndef用法和区别

#if #ifdef和#ifndef用法 移位运算符优先级高于条件运算符,重载是不能改变运算符优先级,这点要注意,所以代码应当像下面这样调整,写宏时候一定要注意优先级,尽量用括号来屏蔽运算符优先级...如果一个C源程序不同计算机系统上系统上运行,而不同计算机又有一定差异。...可以源程序插入以下条件编译段: #ifdef DEBUG print ("device_open(%p)n", file); #endif 如果在它前面有以下命令行: #define DEBUG...用条件编译,则不必一一删改printf语句,只需删除前面的一条“#define DEBUG”命令即可,这时所有的用DEBUG作标识符条件编译段都使其中printf语句不起作用,即起统一控制作用,如同一个...可以事先给定一定条件,使程序不同条件下执行不同功能。

1.4K10

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

允许整数直接量插入下划线,便于阅读:61_284_042_283_586 乘幂: 23次方:2**3 “无内置限制”原则:可以填满内存 源码中使用Unicode编码:use utf8...列表上下文中,会返回一个列表: @line = ; while与foreach区别:while循环里,Perl会读取一行输入,把他存入某个变量并执行循环主体,接下来它会回头去寻找其他输入行...$_并执行代码块selector,最后将返回真的元素以列表形式返回,即@dst_list 由于_是@src_list中元素别名,所以不要修改_ 标量上下文grep返回符合过滤条件元素个数 map...于grep区别 map使用代码块最后一个表达式实际计算结果,所以最终会返回一个这样结果组成列表。...map使用表达式(selector)是一个列表上下文环境,意味着可以一次返回多个元素结果 my @data = (4.75, 1.5, 2, 1234, 6.9456, 12345678.9,

2.5K20

C语言中基本输入输出

%o\n",a); printf("0x%x\n",a); printf("%3.2f\n",b); printf("%c\n",c); getchar(); return 0; } *修饰符printf...()用法: 假如您不想事先指定字段宽度,而是希望由程序来制定该值,那么您可以字段宽度部分使用*代替数字来达到目的,但是您也必须使用一个参数来告诉函数宽度值是多少。...地址表项地址给出各变量地址,地址是由地址运算符”&”后跟变量名组成。 Scanf 函数中格式字符串构成与printf函数基本相同,但使用时有几点不同....,并且包含直到下一个空白字符全部字符 %u 把输入解释成一个无符号十进制整数 %x,%X 把输入解释称一个有符号十六进制整数 *修饰符scanf()用法: *scanf()中提供截然不同服务...当它检测到“文件末尾”(end of file)时,它返回EOF(EOF是文件stdio.h定义好一个特殊值,一般,#define指令将EOF值定义为-1)。

3.7K90

Perl快速入门学习

perl进程某一时刻会占用很多内存空间 建议解决方法是程序里使用use strict;以及use warnings;,并统一代码风格,使用库,而不是自己使用”硬编码”。...demo2.pl 1024 + 1 = 1025 1+..+3+...+7+100 = 5050 Perl正则表达式 描述:perl和Egrep属于同一个流派,Perl支持Regex一些修饰符使用并且...TRUE或者FALSE; m #表示进行整治match匹配; s #表示进行替换replace操作 / #斜线表示正则表达式边界; /i #该修饰符modifier表示不区分大小写匹配 /g #该修饰符表示全局匹配...函数(与C函数类似) printf "%2.f C And %.2f F\n", $cel, $fah; } else { print "Matching Error!"...}gix 补充说明: 为什么有时候Perl使用正则匹配需要对$和@需要转义 $符号既可以作为字符串结束字符,又可以Perl作为标记变量; @情况与之类似,Perl用@表示数组名,Perl

2.4K20

Perl快速入门学习

perl进程某一时刻会占用很多内存空间 建议解决方法是程序里使用use strict;以及use warnings;,并统一代码风格,使用库,而不是自己使用”硬编码”。...demo2.pl 1024 + 1 = 1025 1+..+3+...+7+100 = 5050 ---- Perl正则表达式 描述:perl和Egrep属于同一个流派,Perl支持Regex一些修饰符使用并且...TRUE或者FALSE; m #表示进行整治match匹配; s #表示进行替换replace操作 / #斜线表示正则表达式边界; /i #该修饰符modifier表示不区分大小写匹配 /g #该修饰符表示全局匹配...函数(与C函数类似) printf "%2.f C And %.2f F\n", $cel, $fah; } else { print "Matching Error!"...}gix 补充说明: 为什么有时候Perl使用正则匹配需要对$和@需要转义 $符号既可以作为字符串结束字符,又可以Perl作为标记变量; @情况与之类似,Perl用@表示数组名,Perl

1.3K20

☀️ 学会编程入门必备 C# 最基础知识介绍(五)——方法、封装、继承、多态

---- Private 访问修饰符 Private 访问修饰符允许一个类将其成员变量和成员函数对其他函数和对象进行隐藏。只有同一个类函数可以访问它私有成员。...静态多态性,函数响应是在编译时发生动态多态性,函数响应是在运行时发生 C# ,每个类型都是多态,因为包括用户定义类型在内所有类型都继承自 Object。...分别为: 函数重载 运算符重载 ---- 函数重载 可以同一个范围内对相同函数名有多个定义。函数定义必须彼此不同,可以是参数列表参数类型不同,也可以是参数个数不同。...您可以重定义或重载 C# 内置运算符。...,它会产生下列结果: Box1 体积: 210 Box2 体积: 1560 Box3 体积: 5400 ---- 可重载和不可重载运算符 下表描述了 C# 运算符重载能力: 运算符

89120

Visual C++ 重大更改

重大更改为,如果你之前使用是具有相同签名运算符 delete(以与 placement new 运算符对应),你将收到编译器错误(C2956,使用 placement new 点位置出现,因为代码该位置...它在功能上等效于 %f 格式说明符,但使用大写字母形式进行格式设置无穷大和 Nan 除外。 早期版本,实现过去通常将 F 和 N 分析为长度修饰符。...此外,分析但忽略了 E 和 O 修饰符。 指定 %c 格式说明符生成当前区域设置“相应日期和时间表示形式”。 C 区域设置,要求这种表示形式与 %a %b %e %T %Y 相同。...hash_map 和 hash_set 非标准标头文件 hash_map 和 hash_set Visual Studio 2015 RC 已被弃用,并且将在未来版本移除。...请改用 unordered_map 和 unordered_set。  比较运算符和 operator() 关联容器( 系列)现在要求其比较运算符具有可调用 const 函数调用运算符

5.1K10

Visual C++ 重大更改

重大更改为,如果你之前使用是具有相同签名运算符 delete(以与 placement new 运算符对应),你将收到编译器错误(C2956,使用 placement new 点位置出现,因为代码该位置...它在功能上等效于 %f 格式说明符,但使用大写字母形式进行格式设置无穷大和 Nan 除外。 早期版本,实现过去通常将 F 和 N 分析为长度修饰符。...此外,分析但忽略了 E 和 O 修饰符。 指定 %c 格式说明符生成当前区域设置“相应日期和时间表示形式”。 C 区域设置,要求这种表示形式与 %a %b %e %T %Y 相同。...hash_map 和 hash_set 非标准标头文件 hash_map 和 hash_set Visual Studio 2015 RC 已被弃用,并且将在未来版本移除。...请改用 unordered_map 和 unordered_set。  比较运算符和 operator() 关联容器( 系列)现在要求其比较运算符具有可调用 const 函数调用运算符

4.7K00

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

"One character is: $1\n"; } for循环中,替换操作(注意实际上是_ =~ s/^(.)//)依次替换_首字母,直至全部替换完毕退出循环,运行如下所示: Perlfor...⑶表达式修饰符 为了使脚本更加简洁,Perl将控制结构简化为修饰符放在表达式语句后面,来控制该表达式运行,常见的如if、unless、while、until、foreach修饰符,如下所示: print...if (expr1 || expr2) {} #两个表达式至少一个为真则执行模块 Perl模块 Perl不断发展过程,世界各地用户为了解决各种棘手问题,积累了大量已经成熟开源Perl...Perl整合命令cpan可以显示默认搜索路径下安装所有模块,我们可以在其中查看已安装gzip模块,如下所示: 上述模块实际上是使用MakeMaker封装,使用Perl自带ExtUtils:...use引用模块时,如果模块名称包含::双冒号,该双冒号将作为路径分隔符,相当于Linux下/,当然这里前面省略了@INC数组包含默认搜索路径。

3.6K30

GO基础知识分享

iota const关键字出现时将被重置为 0(const 内部第一行之前),const 每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块行索引)。...go语言运算符和C语言运算符基本一致 Go 没有三目运算符,不能适用?...Go 数组长度不可改变,特定场景这样集合就不太适用,Go中提供了一种灵活,功能强悍内置类型切片("动态数组"),与数组相比切片长度是不固定,可以追加元素,追加时可能使切片容量增大。...在数组和切片中它返回元素索引和索引对应值,集合返回 key-value 对。...不过,Map 是无序,我们无法决定它返回顺序,这是因为 Map 是使用 hash 表来实现

34730

Perl正则表达式超详细教程

较老perl版本,如果使用同一个正则表达式做多次匹配,正则引擎将只多次编译正则表达式。...perl5.6,默认情况下对同一正则表达式只编译一次,但同样可以指定o修饰符,使得即使正则表达式变化了也不要重新编译。 一般情况下,可以无视这个修饰符。 范围模式匹配修饰符(?...也就是很多人说”零宽断言(zero-width assertions)”。...perl更强大分组捕获 perl,支持分组捕获更强大、更完整,它除了支持普通分组(也就是直接用括号分组),还支持: 命名捕获(?...)...<=worlds|world) Gao/; # 报错 PCRE,这种变长逆序环视锚定可重写为(?<=word|words),但perl不允许,因为perl严格要求长度必须固定。

6.1K30

2--Gradle入门 - Groovy简介、基本语法

() // def 就是动态类型,Groovy可以不用指定具体类型,就像jsvar一样 在编译 Groovy 字节码文件,Groovy 已经默认帮我们导入了一些jar包,这些 jar...操作时,通过其下标进行存取。 运算符优先级 运算符 名称 ++ ,-- ,+ ,- 预增/减(自增/减),一元加,一元减 *, /, % 乘法,除法,取模 +,- 加法,减法(二元) ==,!...案例 3:类型及权限修饰符 Groovy 类型有: 原生数据类型及包装类 img 类、内部类、抽象类、接口 注解 Trait: 可以看成是带有方法实现接口 权限修饰符: public、protected...each():遍历 size(): 获取list 列表中元素个数 contains(): 判断列表是否包含指定值,则返回 true Map: put():向map 添加元素 remove():根据某个键做移除...增:集合添加元素 println("1.1.

26330

【C++修行之道】命名空间 、C++输入&输出、缺省参数和函数重载

cout和cin是全局流对象,endl是特殊C++符号,表示换行输出,他们都包含在包含头文件。 >是流提取运算符。...std命名空间使用惯例: std是C++标准库命名空间,如何展开std使用更合理呢? 1. 日常练习,建议直接using namespace std即可,这样就很方便。...C/C++,一个程序要运行起来,需要经历以下几个阶段:预处理、编译、汇编、链接。...因为Add是b.cpp定义,所以Add地址b.o。...采用C++编译器编译后 结果结论:linux下,采用g++编译完成后,函数名字修饰发生改变,编译器将函数参数类型信息添加到修改后名字

5100

markdown编辑器实现代码高亮

前言:笔者之前是使用富文本编辑器,现在转用markdown编辑器,但是写文章时候发现即使博客主页设置用上了代码高亮皮肤,但还是插入代码段时候不起作用,查阅了他人博客才发现要加上key描述 类似这样...std; int main() { printf("hello,world!")...a=[1,2,3,4,5,6] print(a.index(5)) 输出4,表示5在这个列表,第一次出现下标为4, 对于index方法而言,如果要查找元素列表中出现了多次,就显示第一次出现下标...,并且查找时要保证查找元素列表,否则会报错 value=a[1] print(value) print(a.count(2))# count 方法表示查找指定元素出现次数,与index方法不同是,...如果要查找元素没有出现则输出零,不会报错 一个小技巧 e.g a=["周一","周二","周三","周四","周六","周五","周日"] #很明显列表周六和周五位置反了,我们现在要交换它们 a[4

1.6K30

PHP正则表达式及模式匹配

PHP对于正则处理文本提供了两种方式,一种是PCRE方式(PCRE库是一个实现了与perl 5语法和语义上略有差异(详见下文)正则表达式模式匹配功能函数集....这个修饰符 等同于perl/x修饰符, 使被编译模式可以包含注释. 注意: 这仅用于数据字符. 空白字符 还是不能在模式特殊字符序列中出现, 比如序列(?...如果这个修饰符 没有设置, 当字符串以一个换行符结尾时, 美元符号还会匹配该换行符(但不会匹配之前任何换行符). 如果设置了修饰符m, 这个修饰符被忽略. perl没有与此修饰符等同修饰符....非贪婪模式, 通常不能匹配超过 pcre.backtrack_limit 字符. X (PCRE_EXTRA) 这个修饰符打开了PCRE与perl不兼容附件功能....模式任意反斜线后就ingen一个 没有特殊含义字符都会导致一个错误, 以此保留这些字符以保证向后兼容性. 默认 情况下, perl, 反斜线紧跟一个没有特殊含义字符被认为是该字符原文.

2.9K20

Java学习之基础

<int<long<float<double 对于引用数据类型给变量存储数据大多数都是一个地址值 大范围往小范围—>强制转换 小范围往大范围—->自然转换 控制修饰符 修饰符 权限 default 同一个包内可见...,不适用任何修饰符,使用对象:类、接口、变量、方法 private 同一类内可见,使用对象:变量,方法。...每次被线程访问时,都强制从共享存储重新读取该成员变量值,而且,当成员变发生变化时,会强制线程将变化值回写到共享内存,在任何时刻,两个线程总是能看到某个成员变量值是同一个值 运算符 =...=== ——>相等判断(首先比较值数据类型是否一致,再次比较值内容是否相等) 算数运算符 关系运算符 == !...,修饰符只能使用final,不能使用其他修饰符 方法只能是并列关系,声明方法应该在类,方法外边 可变参数 一个方法只能指定一个可变参数,他必须是方法最后一个参数 public static void

35540

CC++ 之 C发展史及 各标准特性说明

于是你可以这样调用这个宏:debug(“Hello”);   _Pragma运算符    C99引入了程序定义编译指令另外一种方法:_Pragma运算符。...long long int 类型格式修饰符是ll。printf()和scanf()函数,ll适用于d, i, o, u 和x格式说明符。另外,C99还引进了hh修饰符。...ll和hh修饰符均可以用于n说明符。   格式修饰符a和A用在printf()函数时,结果将会输出十六进制浮点数。...调用printf()函数时,允许%f说明符前加上l修饰符,即%lf,但不起作用。 ...也支持处理最大宽度整数函数    1995年第一次修订时首次引进,用于定义对应各种运算符宏   支持布尔数据类型类型。

88700

Scala最基础入门教程

Scala其实是没有运算符,所有运算符都是方法。...函数和方法区别 方法定义可以实现重载,函数不可以重载。 方法是保存在方法区,函数是保存在堆。 定义方法方法可以称之为函数,不可以重载。 方法可以转成函数, 转换语法: 方法名 _。...// 主构造器参数 分为3类: // 没有修饰符: 作为构造方法传入参数使用 // val 修饰: 会自动生产同名属性 并且定义为val // var 修饰 : 会自动生产同名属性 并且定义为...建议:操作集合时候,不可变用符号,可变用方法。 不可变集合 Set、Map是Java也有的集合。...扁平化 **扁平化+映射:**注:flatMap相当于先进行map操作,进行flatten操作。集合每个元素子元素映射到某个函数并返回新集合。

55270
领券