【问题标题】:Perl reset variablePerl 重置变量
【发布时间】:2013-02-26 22:22:53
【问题描述】:

我正在学习 Perl,并且我制作了一个脚本,它将在我的脚本开头使用定义的变量来建立连接、提取记录、修改它们,然后关闭连接。

我工作的第二部分涉及重复相同的步骤,但针对不同的服务器。

有没有办法取消设置之前设置的任何变量?然后使用新定义的设置并重复这些步骤?

谢谢

【问题讨论】:

  • 你应该考虑你引用的变量的类型,它是一个数组吗?还是哈希?还是标量?通常我用@array = ();%hash = (); 重置它
  • 听起来你想要的是一个带参数的子程序(又名函数)。
  • 我通常只是在开头声明类型并在进行时分配。只需重新分配它们,但带有参数的函数会更好。
  • @bwtrent,我可以假设你来自 C 背景吗?
  • 重用变量是一种可怕的做法。然后你必须在代码中向后扫描,看看它们在哪里被改变了。声明具有有限范围的变量,并且不要重复您的代码:改为创建一个子例程。

标签: perl shell scripting


【解决方案1】:

在自己的范围内定义变量。

{
    my $server = '123.123.123.123';
    my $username = 'user1';
    ping($server);
    login($username);
}
{
    my $server = '222.222.123.123';
    my $username = 'user2';
    ping($server);
    login($username);
}

更好的是,使用函数定义:

sub doSomethingToServer
{
    my ($server, $username) = @_;
    ping($server);
    login($username);
}

doSomethingToServer('123.123.123.123', 'user1');
doSomethingToServer('222.222.123.123', 'user2');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-12
    • 2013-10-12
    • 2013-08-03
    • 2013-01-08
    • 2014-01-07
    • 2015-01-27
    • 2018-11-03
    • 1970-01-01
    相关资源
    最近更新 更多