gpt4 book ai didi

perl - 如何插入变量以从模块调用 Perl 函数?

转载 作者:行者123 更新时间:2023-12-05 01:02:30 28 4
gpt4 key购买 nike

要求是从命令行参数传递模块名称和函数名称。
我需要在程序中获取命令行参数,并且需要从该模块调用该函数

例如,调用带有 2 个参数的 try.pl 程序: MODULE1(Module name) Display(Function name)

 perl try.pl MODULE1 Display 

我想要这样的东西,但它不起作用,请指导我:
use $ARGV[0];
& $ARGV[0]::$ARGV[1]();

最佳答案

假设函数不是类方法,试试这个:

#!/usr/bin/perl
use strict;
use warnings;

my ( $package, $function ) = @ARGV;

eval "use $package (); ${package}::$function()";
die $@ if $@;

请记住,这种技术对代码注入(inject)非常开放。 (参数可以很容易地包含任何 Perl 代码而不是模块名称。)

关于perl - 如何插入变量以从模块调用 Perl 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/209095/

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