我正在努力学习Perl.我编写了一个脚本,然后尝试找出运行脚本所需的Perl的最低版本.
我被告知Perl附带了一个程序,该程序perlver
将根据语法和明确说明的内容确定所需的最低版本.
我有以下代码:
#!/usr/bin/perl
use utf8;
use strict;
use autodie;
use warnings;
use diagnostics;
say "Hey";
exit 0;
Run Code Online (Sandbox Code Playgroud)
但是当我运行脚本时perlver
,我得到以下输出:
[me@here PERL] $ perlver ex6-1
------------------------------------
| file | explicit | syntax | external |
| ------------------------------------ |
| ex6-1 | ~ | v5.8.0 | n/a |
| ------------------------------------ |
| Minimum explicit version : ~ |
| Minimum syntax version : v5.8.0 |
| Minimum version of perl : v5.8.0 |
------------------------------------
[me@here PERL] $
Run Code Online (Sandbox Code Playgroud)
它说基于sytax的最低版本是 …
如何在不使用其他列表的情况下更改列表中的所有元素?
my_list = ["a","b","c","d"]
Run Code Online (Sandbox Code Playgroud)
我想加"!" 使所有要素my_list
平等["a!","b!","c!","d!"]
.
我知道我可以通过创建一个新列表来实现这一点,但我需要在没有第二个(新)列表的情况下完成此操作.
我想用Perl获取文件的绝对路径.该文件位于/a/b/c/file.txt
.所以,我想得到/a/b/c/
.我目前无法使用Cwd::cwd()
,因为实际的工作目录是/a/b/
.这不是一个bug,因为调用了Perl脚本/a/b/
.
那么,是否有一个Perl函数来捕获它,或者我是否必须使用正则表达式来找到它?
我正在从@ARGV
带有<>
构造的输入中读取.fasta格式文件.问题是,第一个数组元素必须只是字符串值,所有其他元素都是.fasta文件.我应该如何使用第一个数组元素作为字符串并忽略它/同时使用<>
构造跳转到第二个元素而没有任何错误(<>
必须在我的练习中使用).
在 Perl 中,用双引号 (")、单引号 (') 和重音符 (`) 引用有什么区别?
这段代码:
#!/bin/env perl
use v5.10;
say "Hello";
say 'Hi';
say `Hola`;
Run Code Online (Sandbox Code Playgroud)
给出以下结果:
你好 你好
我试图理解perl中switch -s的含义.什么是-s意味着什么.我试着谷歌,没有找到任何答案.
my $a = 1 * 1024 * 1024;
my $b = -s $a;
Run Code Online (Sandbox Code Playgroud)
会有什么价值?(就a而言)