小编Dav*_*d B的帖子

R中的基本输入文件解析

我习惯了perl和R的新手.我知道你可以阅读整个表格,read.table()但我想知道如何使用R来解析输入文件中的一行.

具体来说,什么相当于以下perl片段:

open my $fh, $filename or die 'can't open file $filename';
my $line = <$fh>;
my ($first, $second, $third) = split ("\t", $line);
Run Code Online (Sandbox Code Playgroud)

perl parsing r file

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

Perl的'foreach`语句中括号的用途是什么?

我总是想知道为什么我必须写

foreach my $x (@arr)
Run Code Online (Sandbox Code Playgroud)

代替

foreach my $x @arr
Run Code Online (Sandbox Code Playgroud)

括号的目的是什么?

syntax perl foreach

5
推荐指数
2
解决办法
985
查看次数

如何控制提交网格作业时使用的Perl版本?

我正在使用SGE(Sun Grid Engine)向网格提交作业.我还perlbrew用来管理我安装的Perl版本.我写了一些简短的sh脚本,用于运行perl脚本,需要特定的Perl版本(5.12.2),如下所示:

#!/bin/bash
#$-S /bin/bash

source /home/dave/.bash_profile
/home/dave/perl5/perlbrew/bin/perlbrew switch perl-5.12.2

/home/dave/scripts/proc_12.pl --in=/home/dave/in/in.store --dir=/home/dave/in/dir2 --params=/home/dave/in/params.p
Run Code Online (Sandbox Code Playgroud)

现在,当我提交单个作业时,一切正常,但是当我提交很多时,我开始收到perlbrew相关的错误消息,例如:

ln: creating symbolic link `current' to `perl-5.12.2': File exists
ln: creating symbolic link `/home/dave/perl5/perlbrew/bin/cpan' to `/home/dave/perl5/perlbrew/perls/current/bin/cpan': File exists
ln: creating symbolic link `/home/dave/perl5/perlbrew/bin/cpan2dist' to `/home/dave/perl5/perlbrew/perls/current/bin/cpan2dist': File exists
ln: cannot remove `/home/dave/perl5/perlbrew/bin/cpanp': No such file or directory
ln: cannot remove `/home/dave/perl5/perlbrew/bin/enc2xs': No such file or directory
ln: cannot remove `/home/dave/perl5/perlbrew/bin/find2perl': No such file or directory
Run Code Online (Sandbox Code Playgroud)

所以我猜这/home/dave/perl5/perlbrew/bin/perlbrew switch perl-5.12.2 …

bash grid perl sungridengine perlbrew

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

如何访问Moose对象的只读属性?

我是一个绝对的新手,Moose到目前为止我已阅读Moose和大部分的食谱.

有一些我没有得到的东西.我创建了以下包:

package MyRange;

use Moose;
use namespace::autoclean;

has [ 'start', 'end' ] => (
    is       => 'ro',
    isa      => 'Int',
    required => 1,
);

__PACKAGE__->meta->make_immutable;

1;
Run Code Online (Sandbox Code Playgroud)

然后:

use MyRange;    
my $br = MyRange->new(
    start                => 100,
    end                  => 180
);
Run Code Online (Sandbox Code Playgroud)

现在我可以使用eg访问我的字段$br->{start},但我也可以使用例如修改它们(尽管它们是"只读")$br->{start}=5000.我还可以添加新的密钥$br->{xxx}=111.

我错过了什么吗?对象不是以某种方式受到保护吗?这是什么意思ro

perl moose

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

如何将纯文本转换为 HTML(最好使用 Perl)?

有没有办法将纯文本文件转换为简单的 HTML?

一些“复杂”的东西会很棒

  • 识别超链接。
  • 识别(制表符分隔)表。

更新

我刚刚找到了这个HTML::FromText。检查它是否满足我的需求...

html perl

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

我如何重载Moose构造函数?

对不起Java术语,但我如何重载Moose构造函数?

假设我代表一个细分市场.我可以采取起点和点,或起点和长度,或终点和长度.

我怎样才能允许这种替代施工方法?

perl moose

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

如何让Perl识别带有'〜'的路径?

可能重复:
如何在Perl中找到用户的主目录?

我正在运行Ubuntu.

每当我传递Perl脚本时,以~(例如~/Documents/file.txt)它开始的路径都找不到它.我必须通过规范路径(例如/home/dave/Documents/file.txt).

这是为什么?

我可以让Perl识别~路径吗?

UPDATE

所有建议的解决方案都包括更改脚本中的代码.我想要一个不会对脚本本身进行任何更改的解决方案(因为并非所有这些都是我的).也许是Bash的工作方式?

问题的更新版本发布在超级用户.

perl tilde-expansion home-directory

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

如何设置Multimarkdown表的格式?

我正在按照语法指南中表格部分的指南编写Multimarkdown表,我希望使用Text :: MultiMarkdown将它们转换为HTML .

它工作得很好,唯一的问题是我无法弄清楚如何控制表的格式(显示边框,对齐标题,字体大小等).

html perl markdown

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

在Perl中删除数组元素的"正确"方法是什么?

我有一个包含一组元素的数组.元素的顺序是无关紧要的 - 我使用数组,因为它是我在Perl中知道的最简单的数据结构.

my @arr = ...
while (some condition) {
    # iterate over @arr and remove all elements which meet some criteria
    # (which depends on $i)
}
Run Code Online (Sandbox Code Playgroud)

我知道,splice()但我认为在迭代时使用它并不好.delete对于数组元素似乎已弃用.也许用grep@arr为自己(@arr = grep {...} @arr)?

这里的最佳做法是什么?

也许使用哈希(虽然我真的不需要它)?

arrays perl

5
推荐指数
2
解决办法
1531
查看次数

如何使用CSS或Multimarkdown在新选项卡中打开超链接?

我正在使用Text :: MultiMarkdownMultiMarkdown文档创建HTML文件.

我希望所有链接都在新标签中打开.

有没有办法使用CSS模板配置此行为,或直接在MultiMarkdown文档中配置此行为(没有在MultiMarkdown文档中的每个链接周围显式编写HTML)?

html css perl markdown hyperlink

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