这是一个简单的问题,我想,但我试图将.txt文件中的第一个小写字母改为大写,使用以下
$_ =~ s/^[a-z]/\U/;
Run Code Online (Sandbox Code Playgroud)
当我执行它时,会发生的是,不是将小写字母改为大写字母,而是将行尾开始的小写字母替换为该行上的最高位.例如,nAkld987aBALPaapofikU88
代替被替换的行NAkld987
变为Akld987...
我试图从终端生成我的macbook上的随机文本文件.我在想的是:
tr -dc A-Za-z0-9 < /dev/urandom | head -c100 > RandomFile.txt
Run Code Online (Sandbox Code Playgroud)
但我得到了
tr:非法字节序列
我究竟做错了什么?
我正在尝试使用字符类将所有小写字母重新编译为大写:
regsub -all { [:lower:] } $f { [:upper:] } f
Run Code Online (Sandbox Code Playgroud)
但它不做替代.
我想知道是否有办法转换数字
100u 10km 300nm and so on
Run Code Online (Sandbox Code Playgroud)
这样它们被解释为:
100*10^-6 10*10^3 300*10^-6
Run Code Online (Sandbox Code Playgroud)
我需要比较这个数字(100u 10km等).例如,如果我想比较100u到10u那就没关系,我只是做了以下,这是不正确的,但做的工作:
$distance =~ s/(.*)u/$1/;
if ($distance >= $desired_distance) {
printf $distance;
}
Run Code Online (Sandbox Code Playgroud)
其中(.*)u是数字,例如100u.所以我只删除"你",然后将其与数字进行比较.
但是,如果我有这个数字呢?
1.45m
Run Code Online (Sandbox Code Playgroud)
我想比较一下
1400u
Run Code Online (Sandbox Code Playgroud)
以上事情无济于事.
我有以下问题.你如何匹配一个被逗号(,)包围的句子,但句子的大小和单词数量可能不同.例如:
嗨,你好吗,再见
谢谢,我很好,再见
所以我想要匹配"你好吗"和"我很好"我尝过类似的东西
$_ =~ /,([\w\s\w\s\w,])/;
Run Code Online (Sandbox Code Playgroud)
但这似乎非常错误,并且"可能"匹配由空格分隔的3个单词.
问题是我正在尝试创建哈希散列,然后向每个哈希添加更多元素.我正在阅读一个文件,我正在匹配各种项目,我想将它们存储在不同的子网站中 - ('类别','项目','描述','得分').稍后我需要将它们存储在CSV文件中,但目前我只是想打印它们,但是我遇到了很多错误.这是我的代码:
use strict;
use warnings;
my %MacroA = ('Category', 'Item', 'Description', 'Score');
open (my $file, '<', 'Layout.txt') or die $!;
while (my $line = <$file>) {
if ($line =~ /\b(layout)\b,/) {
$MacroA{Category}++;
}
elsif ($line =~ /,([\w\s]+?),/) {
$MacroA{Item}++;
}
elsif ($line =~ /,\b(\w+?.\d+?)\b,/g) {
$MacroA{Desciption}++;
}
elsif ($line =~ /,\b(pass|fail)\b/) {
$MacroA{Score}++;
}
}
close $file;
foreach my $categories (keys %{ $MacroA{$Category}}) {
print $categories, "\n";
}
foreach my $items (keys %{ $MacroA{$Item}}) {
print $items, "\n"; …
Run Code Online (Sandbox Code Playgroud)