用 Perl 读取精美的文件

2023-11-22

我正在寻找在 Perl 中读取文件的有效方法,并发现了这一非常有趣的行:

my $text = do { local (@ARGV, $/) = $file; <> };

我的问题是:这到底是如何运作的?通常在读取您设置的文件时$/ = undef,但我不明白这是如何做到的。事实证明,这段小代码很难理解。

对此的简化分解和解释是什么?


现在我知道它是如何工作的了,让我们开始真正的想象吧!

并不是说这段代码有任何实际用途;弄清楚它很有趣,看起来也很酷。这是一个可以同时读取多个文件的单行代码!!!

my @texts = map { local (@ARGV, $/) = $_; <> } @files;

local (@ARGV, $/) = $file;

是相同的

local @ARGV = ( $file );
local $/    = undef;

<>然后从中提到的文件中读取@ARGV,即从$file.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用 Perl 读取精美的文件 的相关文章

  • 从 Perl 中的字符串中删除标点符号

    如何从 Perl 中的字符串中删除除空格之外的所有标点符号 s punct g
  • 是否有用于 AES 的纯 Perl 模块?

    是否有用于 AES 的纯 Perl 模块 地穴 Rijndael PP http search cpan org dist Crypt Rijndael PP Rijndael 是底层算法AES https secure wikimedia
  • 将参数传递给调试器中的 perl 文件并在系统执行的文件中设置断点

    因此 我使用 perl d file pl 在 perl 调试器中运行一个文件 但 file pl 也应该接受参数 如何向 file pl 提供参数 还有一个问题 file pl 中有这一行 system file2 pl 如果 file2
  • 如何在 BEGIN 块之外正确声明哈希?

    考虑这个简单的程序 您能解释一下为什么在取消注释前两行后输出会有所不同吗 我的哈希发生了什么use strict 如何修复程序以供使用use strict echo e key1 nkey2 nkey3 perl lne use stric
  • 读取文件并获取 key=value 而不使用 java.util.Properties

    我正在构建一个 RMI 游戏 客户端将加载一个包含一些键和值的文件 这些键和值将用于多个不同的对象 它是一个保存游戏文件 但我不能为此使用 java util Properties 它符合规范 我必须读取整个文件并忽略注释行和与某些类不相关
  • Term::ReadLine - 我需要点击向上箭头两次才能检索历史记录

    我正在使用 Term ReadLine 并遇到一个奇怪的问题 我需要点击向上箭头两次才能从 addhistory 中检索项目 这是我正在使用的脚本 use Term ReadLine my term Term ReadLine gt new
  • 加快写入文件的速度

    我已经分析了一些我用 cProfile 继承的遗留代码 我已经做了很多有帮助的更改 例如使用 simplejson 的 C 扩展 基本上 该脚本将数据从一个系统导出到 ASCII 固定宽度文件 每一行都是一条记录 并且有许多值 每行有 71
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • 从 Java 应用程序读取的文件是否会调用系统调用?

    我的理解是 请求文件系统路径 例如 aFile 的用户应用程序将调用文件系统并获取所请求文件的虚拟地址 然后应用程序将尝试以该地址作为参数 即作为 CPU 指令 进行读 写操作 执行读取命令时 内存管理单元会将该地址转换为物理地址 并查看页
  • 找不到 DBI.pm

    我正在尝试启动这个脚本 usr bin perl use DBI my dbh DBI gt connect dbi Oracle host lonlin2 sid TIMFX1AD port 1524 xbsesdbo xbsesdbo1
  • 在 FOR 循环中打印唯一值

    我有两个文件 myresult 和 annotation 两个文件中的数据似乎是范围 但事实并非如此 这就是为什么我无法将其存储在数组中 我需要使用拆分运算符 以便我可以在 for 循环中使用它并进行比较 现在我需要打印 i myresul
  • 为什么文件更新时“如果较新则复制”不复制文件?

    我在 Visual Studio Express 中有一个解决方案 如下所示 The LogicSchemaC 中的类 将在运行时解析指定的 XML 文件 以下是在main的方法Program cs LogicSchema ls new L
  • Java:直接从同一类的另一个实例访问私有字段

    我正在写一个equals Object obj 一个类的函数 我发现可以访问私有字段obj来自来电者 因此 不要使用 getter Odp other Odp obj if other getCollection contains ftw
  • 在 C++ 中创建大文件的最快方法?

    使用 C 创建大约 50 100 MB 的平面文本文件 内容 添加第一行 应该被插入到文件中 400 万次 使用旧式文件 io fopen用于写入的文件 fseek到所需的文件大小 1 fwrite一个字节 fclose文件
  • 由于 lpcap,CPAN 安装 Net::Pcap 和 Packet 模块失败

    最近 我尝试通过 cpan 安装 perl 模块 Net Packet 和 Net Pcap 但它抱怨找不到 pcap 库 所以我正在搜索 cpan 在安装模块时是否接受外部 lib include 目录 但到目前为止还没有运气 looki
  • 如何在 CF10 中确定闭包变量的范围?

    引自Adobe ColdFusion 10 使用闭包文档 http help adobe com en US ColdFusion 10 0 Developing WSe61e35da8d31851842acbba1353e848b35 8
  • 如何编写 Perl 脚本来使用 curl 处理 URL?

    我有一个非常简单的任务 我有一个 crontab 每小时运行一个脚本 该脚本旨在简单地处理 URL 这就是我所拥有的 这不起作用 我收到语法错误 usr bin perl curl http domain com page html 我已经
  • 了解多个进程的并发文件写入

    从这里 UNIX 中文件追加是原子的吗 https stackoverflow com questions 1154446 is file append atomic in unix 考虑多个进程打开同一个文件并向其追加内容的情况 O AP
  • 如何使用 Perl CGI 脚本提供图像?

    我的 Google fu 让我失望了 如何使用 Perl 提供已生成的图像 Example img src getimage pl getimage pl 里有什么 干得好 usr bin perl w my file inner nav
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算

随机推荐

  • 是否有实现排列运算的 C++ 类?

    是否有实现排列和排列组运算的C 模板类 此类必须实现求积 求逆 乘法等 我不知道有哪一个 但它应该很容易实现 在内部 您可以将排列表示为向量 例如 1 3 4 2 7 5 6 是 1 7 的 Perm 发送 1 gt 1 2 gt 3 3
  • 如何按应用程序过滤Android logcat? [复制]

    这个问题在这里已经有答案了 如何按应用程序过滤 Android logcat 输出 我需要这个 因为当我连接设备时 由于来自其他进程的垃圾邮件 我找不到我想要的输出 编辑 原文如下 当 Android Studio 还不存在时 但如果你想过
  • Fragment 和 FragmentStatePagerAdapter 内带有 ViewPager 的 Fragment 会导致异常(带有完整示例)

    我有一个带有 ViewPager 的简单片段 我正在使用最新的支持库 v4 rev18 如果我第一次显示子片段 一切正常 如果我返回并再次显示它 应用程序会崩溃 并出现以下异常 我有一个完整的示例 显示何时发生以下异常 java lang
  • Javascript 提供哪些调试日志记录工具? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我想创建一个 通用 调试日
  • Func<> 与委托和 lambda 表达式之间的区别[重复]

    这个问题在这里已经有答案了 在深入了解 C 的更高级功能时 我遇到了一些代码 但我并不完全知道其中的区别 这是关于这两行 Func
  • 关闭主窗体

    我正在使用 C Windows 表单开发一个简单的应用程序 主窗体打开另一个窗体 但我不想要这两种窗体 我希望当第二个表单打开时第一个表单关闭 由于第一种形式主要使用 this Close 显示第二个表格后将关闭两者 所以我用这个代替 pr
  • 在 C/C++ 中向指针添加 1 个字节的正确方法是什么?

    我现在正在使用这段代码将指针移动 1 个字节 但我感 觉有些不清楚 int a int malloc sizeof int void b char a 1 char是 1 个字节 但未定义用于字节操作目的 我相信还有另一种方法可以做到这一点
  • 有没有办法在 Azure DevOps CI/CD 构建管道中设置日期和时间(时区)

    我在 CI CD 构建管道中运行了自动化测试 但 DevOps 中的时间是 UTC 我的断言测试检查本地时间 有没有办法在我的构建管道中设置时区 使用 Powershell 您可以执行以下操作 Get TimeZone Set TimeZo
  • 无法将数据库状态与会话同步

    无法将数据库状态与会话同步 org hibernate exception GenericJDBCException 无法更新 我在尝试更新数据库时收到此错误 我的数据库中没有定义唯一键 但 id 字段已定义为主键 这是更新函数的代码 pu
  • Chrome 打印预览不加载 @media 仅打印字体

    我想要一个与屏幕不同的打印字体 不幸的是 Google Chrome 打印预览 适用于其他浏览器 不会加载字体 也不会显示文本 但如果您第二次尝试 字体将被加载 然后 Google Chrome 打印预览将显示文本 这是一个可以重现问题的小
  • 从字符串中删除字符及其后的所有内容

    我知道要替换字符串的字符串 但只有当我确切知道要删除的内容时 这才有效 如果我有一个如下所示的字符串 嗨 那里 这是一个测试 功能 嗨 那里 如何删除 feature 及其后的所有内容 任何帮助将不胜感激 提前致谢 编辑 如果绝对需要使用
  • 从 NodeJS 中的 keycloak 会话获取用户名

    有没有类似的东西 request getUserPrincipal getName Java 在Node中我们使用时获取用户名连接钥匙斗篷使用快速中间件 我也遇到了这个问题 我确实深入研究了中间件代码并试图找到类似的东西 事实证明 requ
  • CSS 导入字体

    我需要在网站上使用 4 种字体 并且我的网站文件夹中有这些文件 Baskerville ttc BellGothicstd Black otf BellGothicstd Bold otf JennaSue ttf 我尝试使用 Import
  • 如何解析 shell 脚本中的符号链接

    给定绝对或相对路径 在类 Unix 系统中 我想在解析任何中间符号链接后确定目标的完整路径 同时解决 用户名符号的奖励积分 如果目标是一个目录 则可以 chdir 进入该目录 然后调用 getcwd 但我真的想从 shell 脚本中执行此操
  • 声纳违规:安全性 - 数组直接存储

    存在声纳违规 声纳违规 安全性 数组直接存储 public void setMyArray String myArray this myArray myArray 解决方案 public void setMyArray String new
  • 如何在 React Native 中抑制由于第三方 PropTypes 库而产生的警告

    在 React Native 中使用样式表时 我收到了大量警告 如下图所示 iOS 模拟器上的警告 怎么抑制呢 无法禁用特定组件的警告 但您可以在应用程序中禁用不同类型的警告 要禁用所有警告 请使用 console disableYello
  • 外部硬盘上的 MySQL 表

    我有大量文本数据需要导入MySQL 我在 MacBook 上执行此操作 但没有足够的空间 因此我想将其存储在外部硬盘驱动器中 目前我并不真正关心速度 这只是为了测试 最好的方法是什么 在外部硬盘上安装 MySQL 这在 Mac 上可行吗 在
  • 动态设置局部变量[重复]

    这个问题在这里已经有答案了 如何在Python中动态设置局部变量 变量名是动态的 与已发布的其他答案相反 您无法修改locals 直接并期望它能起作用 gt gt gt def foo lcl locals lcl xyz 42 print
  • UserPrincipal.FindByIdentity() 始终返回 null

    我正在使用 LdapAuthentication 将用户登录到 Active Directory 我想找到该用户所属的所有组 我正在使用以下代码 string adPath LDAP OU HR Controlled Users OU Al
  • 用 Perl 读取精美的文件

    我正在寻找在 Perl 中读取文件的有效方法 并发现了这一非常有趣的行 my text do local ARGV file lt gt 我的问题是 这到底是如何运作的 通常在读取您设置的文件时 undef 但我不明白这是如何做到的 事实证