簡體   English   中英

我可以在 perl 中自動裝箱單個變量嗎?

[英]Can I autobox a single variable in perl?

我正在使用autobox ,因為它允許我在任意變量上使用JSON::Path ,如下所示:

use autobox::JSON::Path;
use Mojo::Util qw/dumper/;

my $w = { foo => 'bar', baz => [ 1, 2, 3 ] };

print dumper $w->get('$.baz');

其中autobox::JSON::Path這里(仍然是早期代碼)。

然而,這意味着自動裝箱會影響所有 hashrefs 和 arrayrefs。

有沒有辦法讓它只影響特定的變量? 還是實際上和做的一樣

my $w = autobox::JSON::Path::Get->new({ foo => 'bar', baz => [ 1, 2, 3 ] })

就這樣?

這是一個如何將autoboxJSON::Path結合使用的示例。 您可以將autobox的使用限制為特定的 scope,因此限制為特定的變量,如下所示:

use strict;
use warnings;
use JSON::Path;
use Mojo::Util qw/dumper/;

sub HASH::get {
    my ($hash, $arg) = @_;
    my $path = JSON::Path->new($arg);
    return $path->get($hash);
}

my $w = { foo => 'bar', baz => [ 1, 2, 3 ] };

{
    use autobox;
    print dumper $w->get('$.baz');
}

Output

[
  1,
  2,
  3
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM