我可以使用 Perl 的 unpack 将字符串分解为变量吗?

2023-12-28

我的图像文件名由四部分组成:

  1. $Directory(图像所在的目录)
  2. $Name(对于艺术网站,这是画作名称参考#)
  3. $File(图像文件名减去扩展名)
  4. $Extension(图像扩展名)
$example 100020003000.png

我希望对其进行相应的细分:

$dir=1000 $name=2000 $file=3000 $ext=.png

我想知道 substr 是否是分解传入的最佳选择$example所以我可以用 4 个变量做一些事情,比如验证/错误检查,从它的详细名称中获取$Name作业或其他什么。我找到了这个帖子:

unpack 比 substr 更快吗? https://stackoverflow.com/questions/1083269/is-perls-unpack-ever-faster-than-substr所以,在我的初学者“石器”方法中:

my $example = "100020003000.png";
my $dir = substr($example, 0,4);
my $name = substr($example, 5,4);
my $file = substr($example, 9,4);
my $ext = substr($example, 14,3); # will add the the  "." later #

那么,我可以使用 unpack,或者甚至是另一种更有效的方法吗?

我还想避免加载任何模块,除非这样做会因某种原因使用更少的资源。模组是我喜欢的很棒的工具,但我认为在这里没有必要。

我意识到我可能应该将变量推入数组/哈希中,但是,我真的是一个初学者,我需要进一步的指导来了解如何做到这一点以及如何将它们拉出来。

感谢 stackoverflow.com 上的每个人!


绝对地:

my $example = "100020003000.png";
my ($dir, $name, $file, $ext) = unpack 'A4' x 4, $example;

print "$dir\t$name\t$file\t$ext\n";

Output:



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

我可以使用 Perl 的 unpack 将字符串分解为变量吗? 的相关文章

随机推荐

  • 文件夹中的新文件事件

    有人可以帮助我了解如何构建一个 24 7 运行的软件来侦听特定文件夹 例如 C Actions 并且每次我在该文件夹中放置一个新文件时 该软件都需要读取和处理它 如果文件夹中没有文件 软件不应只等待下一个文件的到来而什么也不做 文件 act
  • ASP.NET 动态控件计数(随时创建控件)

    我正在尝试创建一个复合 ASP NET 控件 让您可以构建可编辑的控件集合 我的问题是 当我按下添加或回发按钮 除了回发表单之外什么也不做 时 在文本框中输入的任何值都会丢失 当控件数量在回发之间发生变化时 我无法让它工作 我基本上需要能够
  • 理论计算机科学主题是否具有“现实世界”的开发应用?

    我所说的 理论计算机科学主题 指的是常规语言与非常规语言 泵引理和语法等内容 我熟悉有限自动机和正则表达式的现实世界应用 但诸如此类的其他主题给我带来了更多问题 因为我没有看到任何现实世界的应用 如果您想知道尝试使用正则表达式做某事是否徒劳
  • Ruby on Rails - 在包含 I18n 的 link_to 调用中嵌入额外的 HTML

    我正在尝试在 link to 调用中嵌入额外的 HTML 如本线程中所示在 link to 调用中嵌入额外的 HTML https stackoverflow com questions 9403256 embed additional h
  • “依赖系统的时区设置并不安全”

    我有一个一周前完成的脚本 没有任何问题或错误 今天 我再次测试 收到以下消息 严格标准 date function date 依赖并不安全 系统的时区设置 请使用 date timezone 设置 TZ 环境变量或 date default
  • Android 如何获取所有浏览器应用中的浏览历史记录?

    我想获取android手机中不同浏览器的所有浏览历史记录 也许您知道 一部手机中通常有多个浏览器应用程序 假设您的所有浏览器都使用此 API 来保存历史记录 这应该对您有用 http developer android com refere
  • Node.js sqlite3 IN 运算符

    所以我目前正在尝试在 Node js 中进行查询 friends is an array object db all SELECT email FROM users WHERE email in friends function err r
  • 颤振:缺少 google_app_id。 Firebase 分析已禁用

    我想从一个设备向另一个设备发送通知 但是当我发送它时 我进入了接收器设备 D FLTFireMsgReceiver 8876 broadcast received for message E FA 8876 Missing google a
  • 如何组合多个grep命令?

    我有一个很长的 txt 文件 LONG txt 在该 txt 文件中 我想搜索 3 种类型的模式 然后我想将 grep 结果捕获到一个新的 txt 文件中 SHORT txt 图案 AAAAA BBBBB CCCCC NOTE 当图案AAA
  • Vim 代码补全

    是否可以让 Vim 为您完成代码 就像在任何其他 IDE 中一样 不仅仅是单词搜索 还包括类成员 方法等 可用的最佳选项 插件有哪些 铿锵完成 http www vim org scripts script php script id 33
  • 如果消费者持有消息的时间超过自动提交间隔时间,kafka会丢失消息吗?

    假设自动提交间隔时间为 30 秒 消费者由于某种原因无法处理消息并保留消息超过 30 秒然后崩溃 自动提交偏移量机制是否会在消费者崩溃之前提交此偏移量 如果我的假设是正确的 消息会因其偏移量提交而丢失 但消息本身尚未被处理 让我们假设您的消
  • 使用 C++ 查找向量的中值

    我是一名编程学生 对于我正在从事的一个项目 我必须做的事情之一是计算 int 值向量的中值 并且必须通过将其传递给函数来完成 此外 向量最初是使用 C 随机生成器 mt19937 随机生成的 我已经在代码中写下了该生成器 我将使用排序函数和
  • 使用 json.net 对对象属性进行条件序列化/反序列化[重复]

    这个问题在这里已经有答案了 我有一个场景 其类定义如下 class MyObject public DataDictionary MyObjectData get set public bool ShouldSerializeMyObjec
  • 未定义的方法`authenticate_user! Devise / Rails 4 中的 Api::PostsController

    我的项目中有以下路线 root home index namespace api defaults format json do devise for users controllers sessions api sessions reso
  • MySQL 限制 TIMESTAMP 范围的解决方法?

    有谁知道在 MySQL TIMESTAMP 字段中存储 1970 01 01 00 00 01 UTC 到 2038 01 09 03 14 07 UTC 范围之外的值的解决方法 如果将列更改为使用 DATETIME 类型 则可以存储更广泛
  • sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表

    我定义了表名users table并运行db create all 创建表 但在提交更新用户信息时出现错误 no such table user table 我如何测试 under project python3 manage py she
  • Android HTTP 获取

    我查看了一些论坛帖子 但找不到我的问题的答案 我正在尝试从 php 文件获取响应 php 文件正在运行 问题是 Android 应用程序不会执行我的请求 以下是我的代码的两个示例以及我在文本视图中得到的结果 public void chan
  • 如果
    之前或之后没有文本,如何删除它? DOMxpath 还是正则表达式?

    我怎样才能删除 br 如果之前或之后没有文字 例如 p br hello p p hello br p 它们应该像这样重写 p hello p p hello p 我应该使用 DOMxpath 还是正则表达式会更好 注 我有一个post h
  • 使用 JAXB 将通用 Java 类绑定到 JSON

    我有以下java类 XmlRootElement XmlSeeAlso DataClass class public static class EnvelopeClass
  • 我可以使用 Perl 的 unpack 将字符串分解为变量吗?

    我的图像文件名由四部分组成 Directory 图像所在的目录 Name 对于艺术网站 这是画作名称参考 File 图像文件名减去扩展名 Extension 图像扩展名 example 100020003000 png 我希望对其进行相应的