小编Eli*_*Eli的帖子

如何从Perl中返回数组的函数中获取第一项?

我有一个函数返回一个数组,我想从该数组中得到第一个项目,而不是为数组声明一个变量.基本上,它应该是这样的:

functionReturningArray()[1]

除此之外不起作用.

我真的不想浪费空间来声明整个阵列,因为我不需要它,而且我宁愿不浪费额外的代码行.无论如何要在一行中做到这一点?

perl

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

如何将传递的数组引用直接移到数组?

我有一个函数(让我们称之为foo($array_reference, ...)),它需要一个数组引用和其他参数.我希望foo将数组引用从传递给它的参数列表中直接移到数组,而不必将其作为数组引用移出,然后单独将其转换为数组.

我想要的应该是这样的:

my @bar = @{shift};
Run Code Online (Sandbox Code Playgroud)

我不想要的,但目前仍然坚持:

my $bar = shift;
my @bar = @{$bar}
Run Code Online (Sandbox Code Playgroud)

后一种方法浪费线条,浪费记忆,并让我讨厌这种类型的Perl代码的作者充满激情.请帮忙?

perl

5
推荐指数
3
解决办法
2100
查看次数

在Perl中解析HTML和CSS有哪些好方法?

我有一个项目,我的输入文件曾经是XML.我现在被要求开始使用嵌入式CSS开始处理HTML,并且我希望尽可能简单地完成此操作并尽可能少地进行代码更改.我使用XML :: LibXML来解析XML文件,但现在我们正在转向使用CSS的HTML,我想我需要转向其他东西.也就是说,在我深深陷入愚蠢的决定之前,我可能会后悔,我想在这里问:你们有什么用于这种任务的?

旧XML和新HTML输入文件的结构非常相似,两者都保存相同的信息.HTML使用div代替XML的文本节点,并将样式信息保存在样式标记和属性中,而不是分隔的xml属性.

旧XML的一个示例是:

<text font="TimesNewRoman,BoldItalic" size="11.04" x="59" y="405" w="52"
      h="12" bold="yes" italic="yes" cs="4.6" o_bbox="59,405;52,12"
      o_size="11.04" o_cs="4.6">
Some text
</text>
Run Code Online (Sandbox Code Playgroud)

新HTML的一个示例是:

<div o="9ka" style="position:absolute;top:145;left:89;x-pdf-top:744;x-pdf-left:60;x-pdf-bottom:732;x-pdf-right:536;">
  <span class="ft19" >
    Some text
  </span></nobr>
</div>
Run Code Online (Sandbox Code Playgroud)

其中"ft19"指的是格式页面顶部的css样式元素:

.ft19{ vertical-align:top;font-size:14px;x-pdf-font-size:14px;
       font-family:Times;color:#000000;x-pdf-color:#000000;font-style:italic;
       x-pdf-letter-spacing:0.83px;}
Run Code Online (Sandbox Code Playgroud)

基本上,我想要的只是一个解析器,它可以将每个节点的样式元素作为属性读取,所以我可以这样做:

my @texts_arr = $page_node->findnodes('text');
my $test_node = $texts_arr[1];
print "node\'s bold value is: " . $text_node->getAttribute('bold');
Run Code Online (Sandbox Code Playgroud)

因为我可以使用XML.是否有类似的解析HTML?我真的很想确保以正确的方式开始,而不是在CPAN上找到我想要的东西,并在两个月后意识到还有另一个模块对我正在尝试做的更好.

想法?

html css perl

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

对于各种人类语言的语音表示,什么是好的包?

我目前正在开展一个项目,我认为能够用各种语言提出单词的语音表示非常有用.我知道Aspell做得很好,但是我认为没有一种非常简单的方式可以获得他们的语音表示,所以我问:是否还有其他一些好的方法可以获得单词和语言的单词的语音表示/方言/口音/它来自何处?

这不需要使用任何特定的语言,但如果它是Perl,那将是最好的.

我已经尝试过Soundex,Metaphone,DoubleMetaphone以及Text :: Phonetic中的所有其他内容,而且这些东西都不是很好 - 绝对不如Aspell的那么好.

perl translation aspell phonetics

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

MySQL案例不敏感但强调敏感的UTF8唯一密钥

我知道SF上有很多类似的问题,但我认为我的不同以保证一个新的问题.我有一个表,其中一个列为utf8,其中包含utf8_unicode_ci.它还在此列上具有唯一键以及标记语言代码的另一列.该列中的数据有许多不同的脚本(拉丁文有各种口音,中文和俄文等).

问题是我有时会想要输入两个含有不同含义的词,这些含义只是因变音符号而异(即西班牙语ano与año).由于utf8_unicode_ci是大小写和重音不敏感的,它认为这些是相同的,只允许我输入一个.太糟糕了.理想情况下,我只是将整个列切换到一些不敏感但非常敏感的整理,但这似乎不存在.很多不同的东西使用这个列,所以我宁愿不要将列的默认排序规则更改为utf8_bin,以免因为区分大小写而搞乱.

所以,所有这些都说,我需要一些解决方案,它不会影响到达到这一列的许多现有查询中的默认区分大小写,但是我会添加只有变音符号的单词.想法?如果必须的话,我只会将唯一键约束切换到utf8_bin,但我宁愿不要因为我从不想要表中只有两种不同的东西.

mysql unicode collation utf-8

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

使用多个DB与一个Redis Lua脚本?

是否有可能让一个Redis Lua脚本命中多个数据库?我目前在DB 0中有一种类型的信息和DB 1中另一种类型的信息.我的正常工作流程是基于API调用以及来自DB 0的元信息对DB 1进行更新.我喜欢在一个中做所有事情Lua脚本,但无法弄清楚如何打多个dbs.我正在使用redis-py在Python中执行此操作:

lua_script(keys=some_keys,
           args=some_args,
           client=some_client)
Run Code Online (Sandbox Code Playgroud)

由于客户端意味着一个特定的数据库,我被卡住了.想法?

redis

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

在Lua中为变量添加值?

在大多数语言中,我可以很容易地以一个简短的形式对变量的当前值做一些数学函数(加,减等)foo +=1.Lua有类似的东西吗?

lua

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

在Redis-Py中查看管道中的命令?

有没有一种简单的方法来查看已在Redis-Py管道中排队的命令?我在文档中找不到任何关于此的内容,但它似乎是一个微不足道且有用的命令.我只想做类似的事情:

p = redis_conn.pipeline()
p.hset('blah', 'meh', 1)
p.hset('foo', 'bar', 1)
print p.view() #returns ["hset('blah', 'meh', 1)", "hset('foo', 'bar', 1)"]
Run Code Online (Sandbox Code Playgroud)

python redis

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

您如何处理时间序列图中的时区?

我想会有更多关于这方面的文献,但我找不到任何文献。我有很多非代数聚合的时间序列数据(也就是说,不存在可用于将它们聚合到更高粒度的函数的点——比如独特的活跃用户、独特的贡献者等。 . 知道我在某个小时的每分钟拥有的数量并不能告诉我在这一小时内我拥有的总量)。目前,我只是在 UTC 中存储和呈现所有这些数据。问题是我的许多客户都觉得这很令人困惑——这是可以理解的。由于数据是不可代数聚合的,因此无法从 1 天午夜至午夜的 UTC 数据中获取例如午夜至午夜的 PST 数据。需要根据原始数据进行重新计算。

所以:

  1. 对于一些复杂的分析图,从原始数据重新计算的成本高得令人望而却步
  2. 我们可以存储所有时区的所有数据,但这会增加我们存储 x24 的数据量。

说了这么多,其他人是怎么处理这个问题的?以下是 Google Analytics 的工作方式,但这对我的用例来说似乎不够,因为我知道如果我打开多个时区的蠕虫罐头,客户会要求不止一个。这也需要做很多看起来不值得付出努力的工作,因为仅仅添加时区支持不会非常明显或巨大的胜利。我真正希望的是一些巧妙的设计解决方案,它以某种足够直观的方式呈现 UTC 数据,不再让其他时区的人感到困惑。有没有人处理过类似的问题并找到我缺少的解决方案?

timezone datetime analytics google-analytics time-series

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

Gunicorn 在 Flask 应用程序上不断重启/中断

我有一个 Flask 应用程序,我正在尝试过渡到通过 gunicorn 运行。我在这方面遇到了很多问题。这是我的应用程序的运行代码:

app.run(host=HOST, port=PORT, debug=DEBUG_FLAG)
Run Code Online (Sandbox Code Playgroud)

首先,如果 DEBUG_FLAG == true,应用程序将永远不会真正启动,而是会继续重启,并且在本地点击它是行不通的。它只是一遍又一遍地这样做:

gunicorn analytics_service:app                                                                                                                         
 * Running on http://127.0.0.1:5000/
 * Restarting with reloader
 * Running on http://127.0.0.1:5000/
 * Restarting with reloader
 * Running on http://127.0.0.1:5000/
 * Restarting with reloader
Run Code Online (Sandbox Code Playgroud)

如果我用 DEBUG_FLAG==False 启动它,它实际上会启动并处理一些请求,但仍会因未知原因频繁中断和重启:

gunicorn analytics_service:app                                                                                                                         (env: BigQueryTest)
 * Running on http://127.0.0.1:5000/
127.0.0.1 - - [28/Aug/2014 08:59:05] "GET /metrics/ctr?location=blah&start_date=2014-05-21&end_date=2014-06-01 HTTP/1.1" 200 -
127.0.0.1 - - [28/Aug/2014 08:59:15] "GET /metrics/ctr?location=blah&start_date=2014-05-21&end_date=2014-06-05 HTTP/1.1" 200 -
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 64693)
Traceback …
Run Code Online (Sandbox Code Playgroud)

python flask python-2.7 gunicorn

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