小编Pav*_*sov的帖子

2个文件之间的比较,并以顺序方式打印它们之间的差异

我有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)

regex perl compare

2
推荐指数
1
解决办法
548
查看次数

Perl获取时没有执行错误 - 执行结束时

我当前的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)

mysql perl cgi

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

如何使用当前文本行中的关键字来搜索Perl中已读取文本的前一行?

我开始在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 text-parsing

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

我可以使用其他文件的哈希值吗?

我在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因为我已经在那里声明了其他变量.)

variables perl hash

0
推荐指数
1
解决办法
1386
查看次数

Perl DBI mysql更新

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)

mysql perl dbi

0
推荐指数
1
解决办法
6644
查看次数

如何在另一个Perl文件中重复使用Perl文件

我正在做以下步骤:

  • 读取目录中的所有文本文件并将其存储在名为@files的数组中
  • 在每个文本文件上运行foreach循环.使用拆分操作提取文件名(剥离.txt)并创建该特定文件名的文件夹.将该文件重命名为Test.txt(以便作为另一个perl可执行文件的输入)通过添加行需要"test.pl"为每个文件执行test.pl ;

它只适用于一个文件,但不再适用.这是我的代码:

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)

任何帮助都会非常感激.

perl

0
推荐指数
1
解决办法
189
查看次数

如果循环不在perl中工作

请查看此脚本并提供可能的解决方案..

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 if-statement

-4
推荐指数
1
解决办法
430
查看次数

标签 统计

perl ×7

mysql ×2

cgi ×1

compare ×1

dbi ×1

hash ×1

if-statement ×1

regex ×1

text-parsing ×1

variables ×1