小编Str*_*ure的帖子

如何在不使用for循环的情况下完全重置哈希?

我想完全重置我的%hash所以它根本不包含键或值.我更喜欢使用单线而不是使用循环.

到目前为止,我尝试过:

%hash = 0;
%hash = undef;
Run Code Online (Sandbox Code Playgroud)

但是这些都在严格模式下抛出错误并启用了警告,所以我写了一个简单的for循环来实现同样的事情:

for (keys %hash) {
    delete $hash{$_};
}
Run Code Online (Sandbox Code Playgroud)

这有效,但我真的想用一个班轮做这件事.有没有办法简单地重置我忽略的哈希?

perl hash

17
推荐指数
3
解决办法
1万
查看次数

这是构建利用数组的Perl哈希的正确方法吗?

这是我第一次以这种方式操纵哈希和数组 - 它正在运行.基本上,对于每个键,我想要记录多个值,然后以"key - > value - > value - > val ..."的形式打印出来.

我的代码如下.我很惊讶它有效,因此担心它会"误操作".这是完成此任务的正确方法,还是有更有效或更合适的方法?

while ($source =~ m/(regex)/g) { #Get all key names from source
    $listkey = $1; #Set current list key to the current regex result.
    $list{$listkey} = ++$i unless $list{$listkey}; #Add the key to the hash unless it already exists.
    $list{$listkey} = [] unless exists $list{$listkey}; #Add an array for the hash unless the hash already exists.
    while ($loopcount==0) {
            if ($ifcount==0) {
                    $listvalue=result_of_some_function_using_list_key; #Get the first list …
Run Code Online (Sandbox Code Playgroud)

arrays perl hash

5
推荐指数
1
解决办法
200
查看次数

如何及时了解最新的Web开发标准?

首先,我知道这个问题引发了另一个问题 - 是否应该遵循最新的Web开发标准,并且它们是否仍然具有相关性?

除此之外,我专注于GUI开发,可用性等.利用XHTML,CSS,JavaScript等的前端Web开发.

我知道那里有很多大师和思想领袖,但在我的项目中,我根本没有时间跟随他们,并且跟上最新的开发标准.但是,这显然非常重要.

那么如何在保持生产力的同时让自己了解最新的Web开发标准呢?是否有任何特定的团体或组织需要对此进行监控?人们可能遵循的最佳做法?

standards web-standards

4
推荐指数
1
解决办法
1496
查看次数

如何使用Perl将输出写入新的外部文件?

也许我正在使用错误的关键字进行搜索,或者这是一个非常基本的问题,但我无法找到问题的答案.我无法将我的whois命令的结果写入新的外部文件.

我的代码如下.它需要$readfilename,这是一个具有IP列表的文件名,并且$writefilename是输出的目标文件.两者都是用户指定的.对于我的测试,$readfilename在三个单独的行上包含三个IP地址,因此在用户指定的输出文件中应该有三个单独的whois结果.

if ($readfilename) {
    open (my $inputfile, "<", $readfilename) || die "\n   Cannot open the specified file.     Please double check your file name and path.\n\n";
    open (my $outputfile, ">", $writefilename) || die "\n   Could not create write file.\n\n";
    while (<$inputfile>) {
        my $iplookupresult = `whois $_ > $writefilename`;
        print $outputfile $iplookupresult;
    }
    close $outputfile;
    close $inputfile;
}
Run Code Online (Sandbox Code Playgroud)

我可以执行此脚本并最终获得一个新的外部文件,但超过一半的文件具有二进制垃圾数据(在CentOS上运行),并且只有一个(或一部分)whois查找是可读的.

我不知道我的文件中有一半是以二进制文件结尾...但我的方法必须是不正确的.有没有更好的方法来实现相同的结果?

perl

4
推荐指数
1
解决办法
4812
查看次数

在AS3中,URLLoader.close(); 如果没有加载会导致问题?

我不确定到底发生了什么,但确实发现这URLLoader.close();是原因.

我有一个简单的应用程序,用户将信息输入文本框,然后我将该信息发送到PHP脚本并返回输出.收到输出后,您可以单击重置应用程序的新按钮.错误在于单击该按钮后执行的功能.

如果单击该按钮重置应用程序,它将重置所有变量等,但似乎我的addEventListener方法不执行.

这是重置功能:

//Reset function if the Reset button is pressed
function clearApplication(e:MouseEvent):void {
    receivedData="";
    data1TextBox.text="";
    data2TextBox.text="";
    resetButton.visible=false;
    resetButton.removeEventListener(MouseEvent.CLICK, clearApplication, false);
    goButton.visible=true;
    goButton.addEventListener(MouseEvent.CLICK, getData, false, 0, true);
    myLoader.close();
}
Run Code Online (Sandbox Code Playgroud)

执行完毕后,我的goButton工作不再有效.

如果goButton单击,则应执行以下操作:

function getData(e:MouseEvent):void {
    if (data1TextBox.text!=""&&data2TextBox.text!="") {
        goButton.removeEventListener(MouseEvent.CLICK, getData, false);
        goButton.visible=false;

        postVars = new URLVariables();
        postVars.data1=data1TextBox.text;
        postVars.data2=data2TextBox.text;

        myRequest=new URLRequest("URL");
        myRequest.method=URLRequestMethod.POST;
        myRequest.data=postVars;

        myLoader.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
        myLoader.load(myRequest);
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,onComplete函数:

function onComplete(e:Event):void {
    receivedData=e.target.data;

    outputTextBox.text=receivedData;

    resetButton.visible=true;
    resetButton.addEventListener(MouseEvent.CLICK, clearApplication, false, 0, true); …
Run Code Online (Sandbox Code Playgroud)

flash actionscript-3

4
推荐指数
1
解决办法
3195
查看次数

如何管理用Perl编写的脚本的命令行参数/变量?

我正在尝试管理用户执行命令时指定的众多参数.到目前为止,我一直试图限制我的脚本设计来管理参数作为标志,我可以使用Getopt :: Long轻松管理,如下所示:

GetOptions ("a" => \$a, "b" => \$b);
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我可以检查是否指定了a或b,然后执行相应的代码/功能.

但是,我现在有一种情况,用户可以指定两个参数变量,如下所示:

command -a black -b white
Run Code Online (Sandbox Code Playgroud)

这很好,但是我无法想出一个好方法来确定是先指定-a还是-b.因此,我不知道参数变量是在我执行时分配$ARGV[0]还是$ARGV[1]在分配之后GetOptions ("a" => \$a, "b" => \$b);.

在上面的示例中,如何判断哪个变量与哪个变量相关-a-b

perl command-line-arguments

3
推荐指数
1
解决办法
698
查看次数

在perl中将唯一正则表达式输出记录到数组时遇到问题

以下代码示例的目标是读取内容$target并将所有唯一的正则表达式搜索结果分配给数组.

我已经确认我的正则表达式语句有效,所以我简化了这一点,以免专注于它.

当我执行脚本时,我得到所有正则表达式结果的列表,但是,结果不是唯一的,这使我相信我对数组或我​​的if (grep{$_ eq $1} @array) {检查的操作导致了问题.

#!/usr/bin/env perl

$target = "string to search";

$inc = 0;
$once = 1;

while ($target =~ m/(regex)/g) { #While a regex result is returned
        if ($once) { #If $once is not equal to zero
                @array[$inc] = $1; #Set the first regex result equal to @array[0]
                $once = 0; #Set $once equal to zero so this is not executed more than once
        } else {
                if (grep{$_ …
Run Code Online (Sandbox Code Playgroud)

perl

2
推荐指数
1
解决办法
289
查看次数

如何使用Perl从HTML文本中的相对链接获取文件扩展名?

例如,使用Perl正则表达式扫描HTML页面的内容,我想匹配所有文件扩展名,但不匹配域名中的TLD.为此,我假设所有文件扩展名必须在双引号内.

我想出了以下内容,并且它正在运行,但是,我没有找到一种方法来排除域中的TLD.这将返回"com","net"等.

m/"[^<>]+\.([0-9A-Za-z]*)"/g
Run Code Online (Sandbox Code Playgroud)

如果在由文本分隔的引号之间有多个句点,是否可以否定匹配?(即:匹配foo.bar.com但不是./或../)

编辑$1用来在括号内返回值.

regex perl

2
推荐指数
1
解决办法
332
查看次数

可以在Perl变量上使用grep吗?

在Perl脚本中,是否有可能以某种方式有效地对Perl变量执行grep?一个等效的Perl函数同样可以接受,我只想让解决方案尽可能简单.

例如:

#!/usr/bin/perl
#!/bin/grep

$var="foobar";

$newvar="system('grep -o "foo" $var');

sprintf $newvar;
Run Code Online (Sandbox Code Playgroud)

我希望sprintf $newvar输出的地方foo.

也欢迎任何有关最佳实践的反馈.我对Perl并不是很熟悉.

perl grep

1
推荐指数
1
解决办法
3302
查看次数

自定义(简单)AS3类代码不完全执行

这个问题可能很容易解决,但我不清楚.可能只是我做错了事.我已经研究了OOP和AS3几个小时,所以我熟悉概念但不熟悉流程.这是我整理的一个项目,以加强我一直在学习的东西.

这里的目标是从库中将预先创建的动画片段的实例加载到舞台,然后在FLA的时间帧ActionScript中执行定位功能,并在AS文件的ActionScript类中执行一个函数,以调整动画片段的大小并输出跟踪.

我有两个文件:smileface.fla smileface.as

在smileface.fla中,我有一个驻留在我的库中的MovieClip对象.它具有以下相关属性......

Name: faceInst
Class: smileface
Base Class: null

我有一个框架(关键帧),它包含以下ActionScript:

var faceInst:smileface = new smileface();
this.addChild(faceInst);
faceInst.x = stage.stageWidth/2;
faceInst.y = stage.stageHeight/2;

在我的smileface.as文件中,我有以下代码:

package {
    import flash.display.MovieClip;
    import flash.display.Stage;
    public class smileface extends MovieClip {
        public function smileFunction() {
            this.width = stage.stageWidth/5;
            this.height = stage.stageHeight/5;
            trace("Done!");
        }
    }
}

我希望(没有理由这样做)在加载movieclip对象之后,它将根据规范调整大小,然后输出跟踪.

然而,相反的是,面部显示在舞台上,居中,但没有调整大小,并且根本不输出轨迹.

flash actionscript actionscript-3

0
推荐指数
1
解决办法
504
查看次数

如何只将唯一值添加到用作哈希值的匿名数组?

编辑对不起,我忘记了最重要的部分.每个键可以有多个值.向那些已经回答的人道歉.printjoin将在以后用于打印多个值$key在一行.

在下面的示例代码中,假设值$keyvalue不断变化,我试图使用单行(或类似包含的内容)来测试并查看当前是否$keyvalue已存在.如果确实如此,则什么也不做.如果没有,那就推吧.这一行将驻留在while语句中,这就是为什么它需要包含在几行内.

只要没有重复值,保留顺序无关紧要.

my $key = "numbers";
my $keyvalue = 1;

my %hash = ($key => '1');

push (@{$hash{$key}}, $keyvalue) unless exists $hash{$key};
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误use strict; use warnings;,但同时这不起作用.在上面的例子中,我希望的是,由于默认值是1$keyvalue不会推,因为它是也1.也许我已经让自己全都转过身来......

是否有调整使这个工作或任何替代品可以用来代替完成同样的事情?

perl hash

0
推荐指数
1
解决办法
3052
查看次数