问题列表 - 第21479页

为什么Perl :: Critic不喜欢使用shift来填充子程序变量?

最近,我决定在我的代码上更频繁地使用Perl :: Critic.在Perl编程近7年后,我已经习惯了大部分Perl最佳实践,但我知道总有改进的余地.有一件事让我烦恼的是,Perl :: Critic并不喜欢我为子程序解包@_的方式.举个例子:

sub my_way_to_unpack {
    my $variable1 = shift @_;
    my $variable2 = shift @_;

    my $result = $variable1 + $variable2;
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

这就是我一直以来的做法,而且,正如PerlMonks和Stack Overflow所讨论的那样,它也不一定是邪恶的.

将上面的代码段更改为...

sub perl_critics_way_to_unpack {
    my ($variable1, $variable2) = @_;

    my $result = $variable1 + $variable2;
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

...也有效,但我发现它更难阅读.我也读过Damian Conway的书Perl Best Practices,我真的不明白我的首选解包方法是否属于他的建议,以避免@_直接使用,正如Perl :: Critic所暗示的那样.我一直认为康威在讨论如下的肮脏:

sub not_unpacking {
    my $result = $_[0] + $_[1];
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

上面的例子很糟糕,很难阅读,我永远不会考虑在一段生产代码中编写它.

简而言之,为什么Perl …

perl perl-critic

16
推荐指数
3
解决办法
1908
查看次数

在Exchange OWA中创建新的日历系统支持

由于Exchange不支持OWA中的所有本地日历类型,我需要使用Microsoft.Net对日历的支持来创建一个,但我应该从哪里开始?

calendar localization exchange-server-2007

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

Jquery ajaxStart没有被触发

这段代码

$("#loading").ajaxStart(function() {
        alert("start");
        $(this).show();
    });
Run Code Online (Sandbox Code Playgroud)

在我的加价

<div style="text-align:center;"><img id="loading" src="../images/common/loading.gif" alt="" /></div>
Run Code Online (Sandbox Code Playgroud)

这是完整的ajax请求:

$.ajax({
        type: "POST",       

        url: "http://localhost/WebServices/Service.asmx/GetResults",

        data: jsonText,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {

            var results = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
            PopulateTree(results);
        },

        error: function(xhr, status, error) {
            var msg = JSON.parse(xhr.responseText);
            alert(msg.Message);


        }
    });

$("#loading").ajaxStart(function() {
        alert("start");
        $(this).show();
    });

    $("#loading").ajaxStop(function() {
        alert("stop");
        $(this).hide();
        $("#st-tree-container").show();

    });
Run Code Online (Sandbox Code Playgroud)

即使gif显示为旋转,也不会触发警报"开始".AjaxStop按预期触发.有什么想法吗?

ajax jquery

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

由于JSON中的单引号转义,jQuery.parseJSON抛出"无效的JSON"错误

我正在向我的服务器发出请求jQuery.post(),我的服务器正在返回JSON对象(如{ "var": "value", ... }).但是,如果任何值包含单引号(正确转义\'),jQuery无法解析其他有效的JSON字符串.这是我的意思的一个例子(在Chrome的控制台中完成):

data = "{ \"status\": \"success\", \"newHtml\": \"Hello \\\'x\" }";
eval("x = " + data); // { newHtml: "Hello 'x", status: "success" }

$.parseJSON(data); // Invalid JSON: { "status": "success", "newHtml": "Hello \'x" }
Run Code Online (Sandbox Code Playgroud)

这是正常的吗?有没有办法通过JSON正确传递单个引用?

javascript jquery json

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

如何在项目中包含/引用文件而不将其复制到项目目录中?

我正在Visual Studio 2008中编写一个应用程序.我有一个帮助文件,我希望将其包含在项目的输出中.我希望我的帮助文件的最新版本保留在不是我的visual studio项目目录的文件夹中.例如C:/ Helpfiles.

我想在我的Visual Studio项目中包含这个文件,这样当我构建项目时,我会在项目输出中获得该文件的最新版本(在C:/ helpfiles中).如果我只是"添加现有"并选择帮助文件,它会在每次构建时从C:/ helpfiles中获取最新版本吗?

helpfile project-reference visual-studio-2008 visual-studio

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

Java:设置"user.dir"时File.exists()不一致

JRE 6,在Windows XP上.

使用不同构造函数实例化两个File对象会导致该File.exists()方法的结果不一致.

免责声明:以下代码是摘要,而不是实际代码.我根本不相信这是一个File.separator问题.我首先要求得到早期反应,以防我错过了一个很好理解的问题.现在看来,重置系统属性是导致此问题的原因之一.下面的代码现在可以重现并且可以按原样使用.您可以复制/粘贴Java类并尝试它,它应该与我列出的结果一致. user.dir

建立:

创建文件夹架构C:\toto\tmp\sub.

从任何不包含tmp/sub子文件夹体系结构的文件夹中启动以下类.

码:

public class TestFileExists {

    public static void main(String[] args) {

        System.setProperty("user.dir", "C:\\toto\\");

        File root = new File("tmp");

        File sub_a = new File(root, "sub");

        File sub_b = new File(root.getAbsolutePath()+"/sub");

        System.out.println("sub_a path ? "+sub_a.getAbsolutePath());
        System.out.println("sub_a exists ? "+sub_a.exists());
        System.out.println("sub_b path ? "+sub_b.getAbsolutePath());
        System.out.println("sub_b exists ? "+sub_b.exists());
        System.out.println("Path equals ? "+ (sub_a.getAbsolutePath().equals(sub_b.getAbsolutePath())));
        System.out.println("Obj equals ? "+ (sub_a.equals(sub_b)));

    }

}
Run Code Online (Sandbox Code Playgroud)

结果: …

java filesystems

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

如何在Javascript中加载树时使GIF旋转

我有一个通过Web服务填充的树 - 这部分是超快的,有点慢的部分填充树...我有一个gif旋转图像,在服务加载时旋转.由于我使用ajaxStop和ajaxStart触发器,gif在ajax请求完成后停止旋转,这是正确的.但是,由于加载需要一瞬间,gif会在一瞬间冻结,看起来不专业.

如何使gif旋转直到树完成加载?

javascript tree jquery

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

由于浮点数的二进制存储,避免意外行为的最佳方法是什么?

我最近写了一个简单的for循环,并得到了一些意想不到的行为:

for(double x = 0.0; x <= 1.0; x += 0.05)
{
    Console.WriteLine(x.ToString());
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.9
0.95
Run Code Online (Sandbox Code Playgroud)

请注意,即使继续for循环的条件似乎包含它,也不会出现1.我意识到这是因为十进制数字作为二进制存储在内存中, 1实际上不是1,而是实际上是1.0000000000000002(根据Visual Studio中的变量监视).所以我的问题是,避免这种意外行为的最佳方法是什么?一种方法是使用decimal类型而不是double,但大多数System.Math函数double仅在s上工作,并且两者之间的转换并不简单.

.net c# binary

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

将按钮绑定到javascript函数

我在html中有一个按钮:

<button id="MyButton" onclick="return DoSomething()">Click Me</button>
Run Code Online (Sandbox Code Playgroud)

将"onclick"属性放在html中或使用javascript/DOM将回调附加到按钮单击是否更好?

html javascript

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

什么是在文本框中插入文本的jquery插件,它会在焦点时消失?

什么是在文本框中插入文本的jquery插件,它会在焦点时消失?

javascript jquery

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