我有一个数组,将纬度/经度存储在一起。例如:
@values[0] = "-0.709999984318709,60.690000003554324"
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其分为两个数组,@lat
并@long
基于逗号。
我怎样才能做到这一点?
谢谢
我在xcode中创建了一个自定义类:PaperPack
并定义了2个即时变量:title
和author
-
然后我分配2个类的实例,如下所示:
PaperPack *pack1 = [[PaperPack alloc] init];
pack1.title = @"Title 1";
pack1.author = @"Author";
PaperPack *pack2 = [[PaperPack alloc] init];
pack1.title = @"Title 2";
pack1.author = @"Author";
Run Code Online (Sandbox Code Playgroud)
那么我如何计算和返回我用该类创建的实例数?
我在嵌入式系统上运行Linux,特别是在Cyclone V FPGA上使用Yocto Linux.我能够以最基本的形式使用Perl,但我无法加载任何Perl模块.例如,在尝试使用该GetOpt::Long
模块时,我收到以下错误
root@socfpga_cyclone5:/mnt/sdcard# ./test.pl
Can't locate Getopt/Long.pm in @INC (@INC contains:
/etc/perl
/usr/lib/perl/site_perl/5.14.2/
/usr/lib/perl/site_perl/5.14.2
/usr/lib/perl/vendor_perl/5.14.2/
/usr/lib/perl/vendor_perl/5.14.2
/usr/lib/perl/5.14.2/
/usr/lib/perl/5.14.2
/usr/local/lib/site_perl
/usr/lib/perl/5.14.2
.) at ./test.pl line 3.
BEGIN failed--compilation aborted at ./test.pl line 3.
Run Code Online (Sandbox Code Playgroud)
有谁知道如何安装这些模块?模块是否完全依赖于硬件架构?.pm
从某些来源复制并粘贴文件是否合理(我可以在哪里找到并下载这些.pm
文件)?
我试图在Perl单行中打印单引号时遇到了这个问题.我最终想通了你必须逃脱它们'\''
.这里有一些代码来说明我的问题.
让我们从打印文本文件开始.
perl -ne 'chomp; print "$_\n"' shortlist.txt
red
orange
yellow
green
blue
Run Code Online (Sandbox Code Playgroud)
现在让我们为每行打印文件的名称.
perl -ne 'chomp; print "$ARGV\n"' shortlist.txt
shortlist.txt
shortlist.txt
shortlist.txt
shortlist.txt
shortlist.txt
Run Code Online (Sandbox Code Playgroud)
然后我们可以在每一行周围添加单引号.
perl -ne 'chomp; print "'$_'\n"' shortlist.txt
shortlist.txt
shortlist.txt
shortlist.txt
shortlist.txt
shortlist.txt
Run Code Online (Sandbox Code Playgroud)
等等没有用.让我们再试一次.
perl -ne 'chomp; print "'\''$_'\''\n"' shortlist.txt
'red'
'orange'
'yellow'
'green'
'blue'
Run Code Online (Sandbox Code Playgroud)
所以我现在就开始工作了.但我仍然对为什么'$ _'评估程序名称感到困惑.也许这很容易,但有人可以解释或链接到一些文档吗?
编辑:我在Red Hat 5上运行Perl 5.8.8
print("how old are you")
age = input(">")
if age >= 24:
print("you are getting old")
print (age)
else:
print("i don't care")
print (age)
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
if age >= 24:
TypeError: unorderable types: str() >= int()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Stringr库从大而凌乱的文件中提取电子邮件。
str_match不允许perl = TRUE,而且我无法弄清楚转义字符以使其正常工作。
有人可以推荐一种相对健壮的正则表达式,该正则表达式可以在以下情况下使用吗?
c("larry@gmail.com", "larry-sally@sally.com", "larry@sally.larry.com")->emails
"SomeRegex"->regex
str_match(emails, regex)
Run Code Online (Sandbox Code Playgroud) 我正在尝试执行一个perl脚本来处理一个小的12 x 2文本文件(大约260字节)和一个大的.bedgraph文件(大小至少为1.3 MB).从这两个文件中,脚本输出一个新的bedgraph文件.
我已经在另外3个.bedgraph文件上运行了这个脚本,但是我尝试在其余的进程中运行它Killed
.
perl脚本平均需要大约20分钟才能在每个.bedgraph
文件上运行.
我在本地计算机上运行perl脚本(而不是从服务器运行).我正在使用Linux OS Ubuntu 12.04系统64位4GB RAM.
为什么我的perl脚本执行会被杀死,我该如何解决?
这是脚本:
# input file handle
open(my $sizes_fh, '<', 'S_lycopersicum_chromosomes.size') or die $!;
# output file handles
open(my $output, '+>', 'tendaysafterbreaker_output.bedgraph') or die $!;
my @array;
while(<$sizes_fh>){
chomp;
my ($chrom1, $size) = split(/\t/, $_);
@array = (0) x $size;
open(my $bedgraph_fh, '<', 'Solanum_lycopersicum_tendaysafterbreaker.bedgraph') or die $!;
while(<$bedgraph_fh>){
chomp;
my ($chrom2, $start, $end, $FPKM) = split(/\t/, $_);
if ($chrom1 eq $chrom2){
for(my $i = $start; $i …
Run Code Online (Sandbox Code Playgroud) 我是perl的新手,我正在努力让这个脚本工作.
我已经取得了碎片或perl并且将它们作为单独的部分工作但是在试图将它们混合在一起时它失败了.即使显示错误消息,我也找不到我的错误.
工作和完成时的脚本将读取输出文件并通过它部分我的部分并且生成一个新的输出文件,其中包含一些附加文本的标题和该部分中行数的值.
我的问题是当它为数组中的每个关键字进行循环时它现在失败了,错误消息'Argument'"不是数组元素中的数字'.Perl将我引导到脚本中的一个部分但我无法看到我如何错误地调用该元素.数组中的所有元素都是alpha,但错误消息是指数值.
谁能看到我的错误.
谢谢
这是脚本
#!/usr/bin/perl -w
use strict;
use warnings;
use diagnostics;
# this version reads each variable and loops through the 18 times put only displays on per loop.
my $NODE = `uname -n`;
my $a = "/tmp/";
my $b = $NODE ;
my $c = "_deco.txt";
my $d = "_deco_mini.txt";
chomp $b;
my $STRING = "$a$b$c";
my $STRING_out = "$a$b$d";
my @keyword = ( "Report", "Last", "HP", "sulog", "sudo", "eTrust", "proftp", "process", "active clusters", "pdos", …
Run Code Online (Sandbox Code Playgroud) 我在Perl中有一个子例程,它将读取一个哈希并打印出哈希中的所有键值对.但是,每次有一个键时,我不需要经过foreach循环和打印,而是需要将结果添加到一个标量中,然后在结尾处返回带有组合结果的标量.
在Java中我记得你可以轻松地将其他文本添加到变量中,但我不知道如何在Perl中执行此操作.
有什么想法吗?我将在下面添加我的打印代码,但我基本上想要将其添加到标量并在结尾处返回合并的标量(让我们说$output
)
sub printSongs
{
print "Song Database\n\n";
foreach $key (keys %songList)
{
print "Song Title: $key ---- Duration: $songList{$key}\n";
}
}
Run Code Online (Sandbox Code Playgroud)
PS:我试图搜索这个答案,因为它应该相对简单,但找不到任何东西.不确定追加是否是最好的词.
我不明白为什么perl chomp
没有删除我的字符串周围的空白.我甚至尝试过两次调用chomp,例如,使用bash:
$ perl -e 'use 5.22.4; chomp(my $extra=" lol "); chomp($extra); say "<$extra>"'
< lol >
Run Code Online (Sandbox Code Playgroud)
我真的希望得到
<lol>
Run Code Online (Sandbox Code Playgroud)