小编Gre*_*con的帖子

为什么takeWhile会在有更多字符可用时返回空字符串?

我有一个字符串,r其值低于,我想提取字符串"index.htm".

"<a id=\"ctl00_HyperLink_home\" href=\"index.htm\"> " ++
"<font color=\"#FFFFFF\">Home</font>" ++
"</a>"
Run Code Online (Sandbox Code Playgroud)

我的代码是

parseHref :: String -> String
parseHref ('h':'r':'e':'f':'=':'\"':xs) =  takeWhile( '\"'>) xs
parseHref (_:xs) = parseHref xs
Run Code Online (Sandbox Code Playgroud)

但是parseHref r是空字符串.有人可以帮忙吗?提前致谢.

haskell

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

如何在不丢失已提交更改的情况下更新我的本地存储库?

所以我分叉并克隆并创建了一个新分支,做了一些更改并进行了 git commit。

然而,原始回购(上游)有一些新的变化。我想让它们到我的本地仓库,并且准确到实际的分支,而不会丢失我已经提交的更改。我现在有一个提交

我花了大约一个小时来了解如何做到这一点,但如果不知道可以让我得到结果的实际关键字,这似乎是一个死胡同。

git github

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

为什么我的Perl脚本死于"内存不足"异常?

我需要逐行读取200mb"空格"分隔文件并将其内容收集到一个数组中.

每次运行脚本时,Perl都会抛出"内存不足"异常,但我不明白为什么!

请问一些建议?

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

open my $fh, "<", "../cnai_all.csd";
my @parse = ();

while (<$fh>) {
     my @words = split(/\s/,$_);
     push (@parse, \@words);
}

print scalar @parse;
Run Code Online (Sandbox Code Playgroud)

cnai文件看起来像这样:它包含11000行和4200个值,每行分隔"空格".

VALUE_GROUP_A VALUE_GROUP_B VALUE_GROUP_C 
VALUE_GROUP_A VALUE_GROUP_B VALUE_GROUP_C 
VALUE_GROUP_A VALUE_GROUP_B VALUE_GROUP_C 
VALUE_GROUP_A VALUE_GROUP_B VALUE_GROUP_C 
Run Code Online (Sandbox Code Playgroud)

上面的代码只是一个简化的样本.
最终脚本将所有值存储在哈希中,稍后将其写入数据库.

但首先,我必须解决那个记忆问题!

database memory perl

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

是否可以象征性地引用Perl核心模块?

我知道我可以很容易地做类似的事情

sub sin {
    sin($_[0]);
}
Run Code Online (Sandbox Code Playgroud)

并象征性地引用我需要的每个函数,但我想知道是否有办法做类似的事情

{$foo}(123);
Run Code Online (Sandbox Code Playgroud)

&{$foo}(123);
Run Code Online (Sandbox Code Playgroud)

哪个有效,但不适用于核心功能.

谢谢.

perl function symbolic-references perl-core

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

Java:如何将switch语句的大小写转换为单独的文件?

我有一个带有switch语句的Java方法.

它工作正常,但我有很多情况,可能是20或更多,如下所示.

switch (result)  // result is of type Enum
{
    case 1:
        break;

    case 2:
        break;

    //----
    //----
    //----

    default:
        break;
}  // End of Switch 
Run Code Online (Sandbox Code Playgroud)

请告诉我如何将这些案例转移到另一个文件中.

java

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

将Perl中的字符串拆分为数据库

我用的代码是:

$data_read=$port_obj->read($buffer);
print "$data_read\n";
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样:

T=3420499518  A=914 B=97 C=49 D=436 E=428 F=863 G=34 H=771 I=214 J=493 K=165
Run Code Online (Sandbox Code Playgroud)

我想把它放在这个:

$T,$A,$B,$C,$D,$E,$F,$G,$H,$I,$J,$K
Run Code Online (Sandbox Code Playgroud)

所以我可以将它写入MySQL数据库.我该怎么做 ?

数据库处理程序:

$query = "INSERT INTO myhouse (T,A,B,C,D,E,F,G,H,I,J,K)
          VALUES ($T,$A,$B,$C,$D,$E,$F,$G,$H,$I,$J,$K)";

$query_handle = $connect->prepare($query);

$query_handle->execute();
Run Code Online (Sandbox Code Playgroud)

mysql sql perl

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

(m/regexp /)或{倍; 命令; 后; 要么; }

我非常喜欢这种语法:

try_something() or warn "Cant do it"; 
Run Code Online (Sandbox Code Playgroud)

如何在之后添加更多命令or

例如,它在这段代码中很有用:

foreach (@array)
{
   m/regex/ or {warn "Does not match"; next;}  # this syntax is wrong
   ...
}
Run Code Online (Sandbox Code Playgroud)

我找到的一种方法是

try_something() or eval {warn "Can't do it"; next;}; 
Run Code Online (Sandbox Code Playgroud)

但我认为这是个坏主意.

最好的答案:

  1. do比...更好eval.
  2. 逗号运算符甚至更好:do_smth() or warn("Does not match"), next;Nota bene:括号是必需的,warn因此next不会将其解析为其参数之一.

error-handling perl

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

Perl中链接列表创建中NEXT的含义

所以我正在尝试使用Perl学习链接列表.我正在阅读Jon Orwant的Perl掌握算法.在书中,他解释了如何创建链表.我理解其中的大部分内容,但我只是无法理解NEXT代码片段的倒数第二行中的命令/ index/key .

$list=undef;
$tail=\$list;

foreach (1..5){
  my $node = [undef, $_ * $_];
  $$tail = $node;
  $tail = \${$node->[NEXT]}; # The NEXT on this line? 
}
Run Code Online (Sandbox Code Playgroud)

他想在那里做什么?

$node标量,它存储未命名数组的地址?即使我们解除引用$node,我们也不应该通过索引号引用单个元素,例如(0,1).如果我们NEXT用作键,是$node对哈希的引用?我很迷茫.

用英语简单的东西将受到高度赞赏.

perl linked-list

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

在Perl中,if(s/^\+ //)的含义是什么?

在Perl/Tk代码中,我发现了一个条件语句如下

if (s/^\+//)
{
   #do something
}
elsif (/^-/)
{
   #do another thing
}
Run Code Online (Sandbox Code Playgroud)

似乎已经完成了一些模式匹配.但我无法理解.任何人都可以帮我理解这种模式匹配吗?

regex perl perltk

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

正则表达式与管道分隔符?

这是我的字符串:

my $var = "eval(sometext,'|function|65200|url|click|Chargement|margin'.split('|'),0,{}))"
Run Code Online (Sandbox Code Playgroud)

我想得到65200的数字,我试过这个my ($key) = $var =~ /eval.*?\|(\d+)\|.*$/正则表达式,但我什么都没得到.

regex perl

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