我有2个文件
**a.txt**
cars
bikes
bus
vehicle
atv
**b.txt**
hawk
hero
atv
bus
***result.txt***
cars
bikes
vehicle
hawk
hero
Run Code Online (Sandbox Code Playgroud)
我想打印2个文件之间的差异.现在我尝试了一个代码,但它以随机的方式给了我差异; 我希望它以适当的顺序方式显示它.任何人都可以帮助我.
use strict;
my %results = ();
open FILE1, "<a.txt"
or die "Could not open file: $! \n";
while (my $line = <FILE1>) {
$results{$line}=1;
}
close FILE1;
open FILE2, "<b.txt"
or die "Could not open file: $! \n";
while (my $line = <FILE2>) {
$results{$line}++;
}
close FILE2;
open OUTFILE, ">>result.txt"
or die "Cannot open $outfile for writing \n";
foreach …Run Code Online (Sandbox Code Playgroud) 我当前的perl代码正在运行数据库查询的所有行,然后抛出一个
DBD::mysql::st fetchrow_hashref failed: fetch() without execute() at ./recieveTxn.cgi
line 168.
Run Code Online (Sandbox Code Playgroud)
在末尾.它几乎就像有些东西没有告诉循环在行的末尾停止,但我已经像其他人一样写了它.
例如:查询会拉高
shortcode1
shortcode2
shortcode3
然后在这里抛出错误
$sql = "
SELECT
aPI.folder AS aPIfolder,
aPI.rowNum AS aPIrowNum,
hasInput,
evalCode
FROM
aPersonalItems as aPI
LEFT JOIN
pItems_special_inputs as SI
ON
aPI.folder = SI.folder AND
aPI.rowNum = SI.rowNum
WHERE
hasInput=1 AND
aPI.folder='$FORM{'folder'}'
ORDER BY
aPI.rowNum
";
$sth = $dbh->prepare( $sql );
$sth->execute();
my ($shortcoderow, $row);
my $shortcodeSQL = "
SELECT
*
FROM
pItemsShortCodes
WHERE
folder='$FORM{'folder'}'
ORDER BY
rowNum
";
my $shortcodeSTH = …Run Code Online (Sandbox Code Playgroud) 我开始在Perl中,并在while循环中逐行解析一些文本,但无法找到有关此特定问题的帮助.我想使用当前文本行中先前读取的文本行的信息.
我的代码如下:
while(<data>){
my $message = substr $_, 0, 1;
if ($message eq 'A'){
my $order_ref = substr $_, 1, 9;
my $order_book = substr $_, 20, 6;
push @add_orders, $_;
print add_order_file "$order_ref,$order_book\n";
}
if ($message eq 'X'){
my $order_ref = substr $_, 1, 9;
#now I would like to use order_ref to look up order_book from a previous line of text
# where the message is equal to A,
my $order_book = LOOKED UP VALUE FROM PREVIOUS TEXT; …Run Code Online (Sandbox Code Playgroud) 我在perl文件中有一个哈希(让我们称之为test2.pl),如下所示:
our %hash1;
my %hash2 = {
one => ($hash1{"zero1"}, $hash1{"one1"} ),
two => ($hash1{"one1"}, $hash1{"two1"} ),
three => ($hash1{"two1"}, $hash1{"three1"}),
four => ($hash1{"three1"}, $hash1{"six1"} ),
five => ($hash1{"six1"}, $hash1{"one2"} ),
six => ($hash1{"one2"}, $hash1{"two2"} ),
last => ($hash1{"two2"}, $hash1{"last1"} ),
};
Run Code Online (Sandbox Code Playgroud)
这得到6个Use of uninitialized value in anonymous hash ({}) at test2.pl line 7.错误(文件中的第7行对应于该my %hash2行,所有错误都表示第7行).
我只能假设这是因为%hash1在另一个调用此文件的文件(test1.pl)中定义.我认为使用our就足以定义它了.我是否必须初始化哈希中的所有变量才能使其工作?
(我正在使用括号,our因为我已经在那里声明了其他变量.)
namekey值......要更新的用户名
#!/usr/bin/perl -w
# Use the DBI module
use strict;
use warnings;
use DBI;
# CONFIG VARIABLES
my $platform = "mysql";
my $database = "prod";
my $host = "localhost";
my $username = "root";
my $password = "admin";
# DATA SOURCE NAME
my $dsn = "dbi:$platform:$database:$host";
# PERL DBI CONNECT
my $connect = DBI->connect($dsn, $username, $password);
# VARS for Examples
my $query;
my $query_handle;
my $id;
my $demo;
# Example 2 using do() UPDATE
# SAMPLE VARIABLE AND VALUES TO PASS …Run Code Online (Sandbox Code Playgroud) 我正在做以下步骤:
它只适用于一个文件,但不再适用.这是我的代码:
opendir DIR, ".";
my @files = grep {/\.txt/} readdir DIR;
foreach my $files (@files) {
@fn = split '\.', $files;
mkdir "$fn[0]"
or die "Unable to create $fn[0] directory <$!>\n";
rename "$files", "Test.txt";
require "test3.pl";
rename "Test.txt", "$files";
system "move $files $fn[0]";
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都会非常感激.
请查看此脚本并提供可能的解决方案..
my $otext = 'ABCDEABCDEABCDEABCDEABCDE';
my $len = length($otext);
print "length of string is:\n".$len;
$n = 1;
if ($n == 1) {
if (substr($otext, -1, 1) eq "E") {
if ($len >= 3) {
if ($len == 3) {
$len1 = 2 * $len - 1;
$len2 = 3 * $len - 2;
}
else {
$len1 = 2*$len-1;
$len2 = 3*$len-3;
}
}
else {
$len1 = 0;
$len2 = 0;
}
print "Length-1 is:". $len1;
print "Length-2 is:" …Run Code Online (Sandbox Code Playgroud) perl ×7
mysql ×2
cgi ×1
compare ×1
dbi ×1
hash ×1
if-statement ×1
regex ×1
text-parsing ×1
variables ×1