Jump to content
xisto Community
Sign in to follow this  
imacul8

Few Perl Snippets For Misc Things

Recommended Posts

Convert any number of seconds to days,hours,minutes and seconds. Useful for converting unix time differences into days,hours,minutes and seconds.

Inputs: ConvertSeconds(no. of seconds)

Returns: $days,$hours,$minutes,$seconds

Assumes: 100% Accurate

	sub ConvertSeconds {   my $secs=shift;	if($secs<(60*60*24)){	$days=0;	}	else{	$days=int($secs/(60*60*24));	}	if((int($secs%60*60*24))<60*60){	$hours=0;	}	else{	$hours=int( ($secs%(60*60*24) ) / (60*60));	}	if( int(($secs % (60*60*24)) % (60*60)) < 60 ){	$minutes=0;	$seconds=int(($secs % (60*60*24)) % (60*60));	}	else{	$minutes=int((($secs%(60*60*24))%60*24)/60);	}	return $days,$hours,$minutes,$seconds; 	}

Replace function

This is a simple script that shows how to create a Replace Subroutine and call it from a script more easily by supplying 3 parameters

EX: &Replace($FullString, $SearchThis, $ReplaceWithThis);

 

	use strict;			my $strString = '';	my $strSearch = '';	my $strReplace = '';	my $strFinal = '';			print 'Enter a string: ';	chomp ($strString = <STDIN>);			print 'Enter a Search: ';	chomp ($strSearch = <STDIN>);			print 'Enter a Replace: ';	chomp ($strReplace = <STDIN>);			$strFinal = &Replace($strString, $strSearch, $strReplace);	print "$strFinal\n";			sub Replace {		my $strString = shift;		my $strSearch = shift;		my $strReplace = shift;		$strString =~ s/$strSearch/$strReplace/ge;		return $strString;	}

Split Function

 

This is a simple script that shows how to make a simple Split subroutine that can be called more easy from a script by just supplying 2 parameters.

EX: &Split($fullString, $splitString);

 

use strict;			my $strString = '';	my $strSplit = '';	my @strFinal = ();			print 'Enter a string: ';	chomp ($strString = <STDIN>);			print 'Enter a string to Split on: ';	chomp ($strSplit = <STDIN>);			@strFinal = &Split($strString, $strSplit);	foreach(@strFinal) {		print "$_\n";		}			###########################################	## Subroutine to a string based on another	## Character or Character String	###########################################	sub Split {		my $strString = shift;		my $strSplit = shift;		my @words = ();				@words = split /$strSplit/, $strString;		return @words;	}

Arrays

 

Shows you how to read an array one by one. Then it shows you how to search an array for a word and add it to a new array. In this example it searchs DSM cars from an array and adds them to a new array twice.

 

 

@carz = ("DSM Talon", "DSM Laser", "Nissan Skyline", "Mazda RX7", "Toyota Supra", "DSM Lancer Evo");	@new = (""); #This is going to become the new array	foreach $carz(@carz){ #Grabs each item out of the array 	print "$carz\n";#Prints the grabbed Item	push(@new, $carz); #Adds the Item to the new array	if ($carz =~/DSM/){#If it the car is a "DSM" then it_	print "$carz\n"}#Adds it to the array twice.	push(@new, $carz); #this is just the car being added a second time	}	print "\n\n\n";#setting in some blank spaces	foreach $new(@new){#showing off the new array!	print"$new\n";	}

Share this post


Link to post
Share on other sites

Convert any number of seconds to days,hours,minutes and seconds. Useful for converting unix time differences into days,hours,minutes and seconds.

Inputs: ConvertSeconds(no. of seconds)

Returns: $days,$hours,$minutes,$seconds

Assumes: 100% Accurate

	sub ConvertSeconds {		...	}

Your code does not work. Depending on the final if-statement $seconds might be undefined. A much simpler version would use the standard localtime() funtion:

 

sub ConvertSeconds {	my ($secs, $minutes, $hours, $days) = localtime(shift);	return $days-1,$hours-1,$minutes,$secs;}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.