gpt4 book ai didi

perl - 我可以使用 Perl 的 unpack 将字符串分解为 var 吗?

转载 作者:行者123 更新时间:2023-12-01 06:59:58 25 4
gpt4 key购买 nike

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

  • $Directory (图片所在目录)
  • $Name (对于一个艺术网站,这是画名引用#)
  • $File (图像文件名减去扩展名)
  • $Extension (图片扩展名)

  • $example 100020003000.png

    我希望相应地分解:
    $dir=1000 $name=2000 $file=3000 $ext=.png

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

    is unpack 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 #

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

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

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

    感谢 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";

    输出:

    1000 2000 3000 .png

    关于perl - 我可以使用 Perl 的 unpack 将字符串分解为 var 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534455/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com