perl

removing a case clause: bash expansion in sed regexp: X='a\.b' ; Y=';;' sed -n '/${X}/,/${Y}/d'

I'm trying to remove a case clause from a bash script. The clause will vary, but will always have backslashes as part of the case-match string. I was trying sed but could use awk or a perl one-liner within the bash script. The target of the edit is straightforward, resembles: $cat t.sh case N in a\.b); #[..etc., varies] ;; ...

Randomly selecting lines from files

I have bunch of files and very file has a header of 5 lines. In the rest of the file, pair of line form an entry. I need to randomly select entry from these files. How can i select random files and random entry(pair of line, excluding header) ? ...

How do Perl FIRSTKEY and NEXTKEY work

Tie::Hash has these: sub FIRSTKEY { my $a = scalar keys %{$_[0]}; each %{$_[0]} } sub NEXTKEY { each %{$_[0]} } NEXTKEY takes two arguments, one of which is the last key but that arg is never referenced? The various Tie docs don't shed any light on this other than this in perltie: my $a = keys %{$self->{LIST}}; # reset each() ...

What is the magic behind perl read() function and buffer which is not a ref ?

I do not get to understand how the Perl read($buf) function is able to modify the content of the $buf variable. $buf is not a reference, so the parameter is given by copy (from my c/c++ knowledge). So how come the $buf variable is modified in the caller ? Is it a tie variable or something ? The C documentation about setbuf is also quit...

Perl Moose::Util::TypeConstraints bug ? what is this error about the name has invalid chars ?

That has been hours i am tracking a Moose::Util::TypeConstraints exceptions, i don't understand where it gets to check a type and tells me that the name is incorrect. I tracked the error to a reduced example to try to locate the problem, and it just shows me that i do not get it. Did i get to a Moose::Util::TypeConstraints bug ? aoffic...

What's the most efficient way to check for duplicates in an array of data using Perl?

I need to see if there are duplicates in an array of strings, what's the most time-efficient way of doing it? ...

How to validate hostname in Perl?

Hi, I need to come up with a regular expression to validate hostname against RFC-1123 and RFC-952. Right now I'm using this: ^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?)*\.?$/ but this does not do the trick since it does not catch a. as invalid hostname...

Perl execution from command line question

I replaced ActivePerl with Strawberry Perl on my WinXP last week. I found I must run my Perl script with the command of perl myperl.pl; otherwise I only need run myperl.pl before install Strawberry. How can I only run myperl.pl as before? I checked my environment configuration as below. C:\> Path C:\Program Files\ActiveState Komodo ...

reformat text in perl

I have a file of 1000 lines, each line in the format filename dd/mm/yyyy hh:mm:ss I want to convert it to read filename mmddhhmm.ss been attempting to do this in perl and awk - no success - would appreciate any help thanks ...

My regular expression doesn't match...

$a ="SCNSC: [email protected]"; $b ="alerts: nek"; $c ="daily-report: tasd,dfgd,fgdfg,dfgdf,[email protected]"; print "matched" if ($a =~ /\w+:\s*\w+@\w+\.\w+/ ); print "matched" if ($b =~ /\w+:\s*\w+[,\w+]{0,}/ ); print "matched...

Perl - How to use a process Handle created in a Module in another Perl Script

Ultimately, what I want to do is to start a process in a module and parse the output in real time in another script. What I want to do : Open a process Handler (IPC) Use this attribute outside of the Module How I'm trying to do it and fail : Open the process handler Save the handler in a module's attribute Use the attribute outsid...

File is adding one extra space in each line

I am trying to add all the elements in array using push . then i stored into another file but begining of file i am seeing one whitespeace in every thing .. What is the issue .. any one before face this issue . open FILE , "a.txt" while (<FILE>) { my $temp =$_; push @array ,$temp; } close(FILE); open FILE2, "b.txt"; print FIL...

Reading a large file into Perl array of arrays and manipulating the output for different purposes

Hello, I am relatively new to Perl and have only used it for converting small files into different formats and feeding data between programs. Now, I need to step it up a little. I have a file of DNA data that is 5,905 lines long, with 32 fields per line. The fields are not delimited by anything and vary in length within the line, but...

How can I also get an element's index when I grep through an array?

Let's say I have this list: my @list = qw(one two three four five); and I want to grab all the elements containing o. I'd have this: my @containing_o = grep { /o/ } @list; But what would I have to do to also receive an index, or to be able to access the index in grep's body? ...

How can I make this Perl regex work?

I have this line /Od /D "WIN32" /D "_DEBUG" /FD /EHa /MDd /Fo"Debug" /Fd"Debug\vc80.pdb" /W3 /c /Zi /clr /TP .\main.cpp" And I want to extract the .\main.cpp. I thought the following would do the trick: if($string =~ /.*\s+(.*)$/i) { print "matched ",$1,"\n"; } because this same regex works in Ruby, and extracts the string I requi...

Perl: How do I remove the first line of a file without reading and copying whole file.

I do have a whole bunch of files in a directory and from every file I want to remove the first line (including carriage return). I can read the whole file into an array of strings and write all but the first element to a new file, but that looks a bit cumbersome to me are there better ways? Oh the prefered language is Perl. ...

How to read line by line a CR-only file with Perl?

I'm trying to read a file which has only CR as line delimiter. I'm using Mac OS X and Perl v.5.8.8. This script should run on every platform, for every kind of line delimiter (CR, LF, CRLF). My current code is the following : open(FILE, "test.txt"); while($record = <FILE>){ print $record; } close(TEST); This currently print onl...

Making self-logging modules with Log::Log4perl

Is there a way to use Log::Log4perl to make a smart self-logging module that logs its operations to a file even in the absence of the calling script not initializing Log4perl? As far as I can tell from the documentation, the only way to use Log4perl is to initialize it in the running script from a configuration, then modules implementing...

How to print a Perl 2-dimensional array?

I am trying to write a simple Perl script that reads a *.csv, places the rows of the *.csv file in a two dimensional array, and then prints on item out of the array and then prints a row of the array. #!/usr/bin/perl use strict; use warnings; open(CSV, $ARGV[0]) || die("Cannot open the $ARGV[0] file: $!"); my @row; my @table; while(<C...

Simplest way to match array of strings to search in perl?

What I want to do is check an array of strings against my search string and get the corresponding key so I can store it. Is there a magical way of doing this with Perl, or am I doomed to using a loop? If so, what is the most efficient way to do this? I'm relatively new to Perl (I've only written 2 other scripts), so I don't know a lot o...