|
|
Disclaimer:
These pages about different languages / apis / best practices were mostly jotted down quckily and rarely corrected afterwards. The languages / apis / best practices may have changed over time (e.g. the facebook api being a prime example), so what was documented as a good way to do something at the time might be outdated when you read it (some pages here are over 15 years old). Just as a reminder. Perl tips and developer notesCode snippets and other Perl thingsSee Perl links for many links to other perl resources. Perl tipsDate/Time/Unixtime1. How to convert date to unixtime in perl (or vice versa)time return number of seconds since 0 in your computer (1 jan 1970) on unix
localtime converts unixtime to normal dates
To convert a specific date to its corresponding unixtime, you use Time::Local, the function looks like this: $time = timelocal($sec,$min,$hours,$mday,$mon,$year);
use Time::Local; $time = timelocal(0,0,0,'3','08','2000');Related links: Dates and Times in Perl. See also manpages for the functions used. search & replace in several filesThis is a script I use whenever I need to do search and replace in a bunch of files. It was meant as a quick hack, but since I does exactly what I need, I continue to use it (always make a backup of the original files in case something goes wrong).
#!/usr/bin/perl -w
#
# More scripts and tips can be found at
# https://www.edlin.org/
#
# Search and replace in several files
#
# I throw this file in my ~/bin/
# Edit the variables $search, $replace and perhaps you want to change the globbing
# then I jump to the directory with the files and just execute msr.pl (make sure that ~/bin is in your $PATH)
use strict;
my @infiles = glob("*.html");
my $search ='dilbert';
my $replace ='wally';
# Here we go.........
foreach my $file (@infiles){
print "Processing $file
";
open(FH,$file) || die "Cannot load $file";
my @lines=<FH>;
close(FH);
my $match=0;
foreach my $line (@lines){
if($line =~ s/$search/$replace/g){
$match=1;
}
}
if($match){
print "...Saving $file\n";
open(FS,">$file") || die "Cannot save $file";
print FS @lines;
close(FS);
}
}
outputwhen hacking some scripts it is useful to use $0 when printing out stuff, that way you can figure out which scripts that generate the output if you end up having scripts that use others scripts etc.print "$0: Some output from script $0\n"; random integersmy $dilbert = int ( rand(10) ) ;will generate an integer from 0 to 9 before Perl 5.004 you have to call srand; before, e.g. srand; my $dilbert = int ( rand(10) ) ; cryptGenerate for example encrypted password "mypasswd" for cvs
#!/usr/bin/perl
my $passwd = crypt("mypasswd","dilbertwallyrandomtext");
print "$passwd\n";
Make filenames lowercase
#!/usr/local/bin/perl -w
if(!@ARGV){
print "Will make *.GIF/JPG to lowercase\n";
exit 0;
}
while($x = <'*.GIF'>) {
$tt =lc $x;
`mv $x $tt`;
}
while($x = <'*.JPG'>) {
$tt =lc $x;
`mv $x $tt`;
}
More programming related pages |
|