john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

Perl strings

$stringlength = length( $string );

# Require Parameters: string=command , string=arguments
sub systemcommand($$)
{
  my $command = $_[0] ;
  my @args = split( " " , $_[1] ) ;
  my $result = system $command,@args;
  return $result;
}


sub getUserInput()
{
  chomp( my $userinput = <STDIN> );
  $userinput = trim( $userinput );
  return $userinput;
}


sub substringafterchar($$)
{
  my $fragment = "";
  my $line = $_[0];
  my $char = $_[1];
  my $charlocation = index( $line , $char );

  if( $charlocation >= 0 )
  {
    $fragment = substr $line , $charlocation + 1;
  }
  return $fragment;
}




my $fragment = "";
my $line = filecontainskeyword( "/etc/cifspassword" , "username=" );
chomp( $line );
my $char = '=';
my $charlocation = index( $line , $char );
print "equals at $charlocation\n";
if( $charlocation >= 0 )
{
    $fragment = substr $line , $charlocation ;
}
return $fragment;




sub getTimestamp()
{
  my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
  $sec = sprintf( "%2.2d" , $sec );
  $min = sprintf( "%2.2d" , $min );
  $hour = sprintf( "%2.2d" , $hour );
  $mday = sprintf( "%2.2d" , $mday );
  $mon = sprintf( "%2.2d" , $mon );
  $mon = $mon + 1;  # to account for the fact that January starts at 0
  $year = $year + 1900;
  my $timestamp = "$year-$mon-$mday--$hour-$min-$sec" ;
  return $timestamp;
}

sub backupFile( ;$ )
{
  my $sourcefile = $_[0];
  my $backup_file = "";
  if( ! -e $sourcefile)
  {   print "Cannot create a backup, file does not exist.\n";
  }else
  { my $timestamp = getTimestamp();
    $backup_file = "$sourcefile.$timestamp" ;
    use File::Copy;
    copy( $sourcefile , $backup_file ) or die "File cannot be copied.\n";
  }
  return $backup_file;
}

sub trim( ;$ )
{
  my( $string ) = @_;    defined $string or die 'Required parameter "string" not defined';

  $string =~ s/^\s+//;
  $string =~ s/\s+$//;
  return $string;
}

sub stringContains( ;$$ )
{
  my( $original,
      $keyword ) = @_;
  defined $original or die 'Required parameter "original" not defined';
  defined $keyword or die 'Required parameter "keyword" not defined';

  my $result = $original =~ m/($keyword)/ ;
  return $result;
}

sub stringContainsWhitespace( ;$ )
{
  my( $string ) = @_;    defined $string or die 'Required parameter "string" not defined';

  my $result = 0;
  $result = $string =~ m/\s/ ;
  return $result;
}

sub startsWithString( ;$$ )
{
  my( $original,
      $keyword ) = @_;
  defined $original or die 'Required parameter "original" not defined';
  defined $keyword or die 'Required parameter "keyword" not defined';

  my $result = $original =~ m/^($keyword)/ ;
  return $result;
}

sub removeHeader( ;$$ )
{
  my( $line,
      $header ) = @_;
  defined $line or die 'Required parameter "Line" not defined';
  defined $header or die 'Required parameter "Header" not defined';

  $line =~ s/$header//g;
  return $line;
}


sub getStringBeforeDelimiter( ;$$ )
{
  my( $line,
      $delimiter ) = @_;
  defined $line or die 'Required parameter "Line" not defined';
  defined $delimiter or die 'Required parameter "Header" not defined';

  my $stopIndex = index( $line , $delimiter );
  my $result = substr( $line , 0 , $stopIndex );
  return $result;
}

sub getPropertyFromFile( ;$$ )
{
  my( $identifier,
      $file ) = @_;
  defined $identifier or die 'Required parameter "Identifier" not defined';
  defined $file or die 'Required parameter "File" not defined';

  my $line = searchFileContains( $file , $identifier );
  my $property = removeHeader( $line , $identifier );
  return $property;
}

# returns the line where the string first occurs
sub searchFileContains( ;$$ )
{
  my( $data_file,
      $keyword )= @_;
  defined $data_file or die 'Required parameter in searchFileContains "data_file" not defined';
  defined $keyword or die 'Required parameter in searchFileContains "keyword" not defined';
  my $found = "";
  my $finalresult = "";

  if( $keyword eq "" )
  { print "\nCannot replace an empty string \n";
  }else
  {
    open( DATA , "$data_file" ) or die "can't open $data_file $!";
    my @array_of_data = <DATA>;
    close( DATA );

    foreach my $line ( @array_of_data )
    {
      $found = $line =~ m/$keyword/;
      if( $found )
      {  $finalresult = $line;
         last;
      }
    }
  }
  chomp( $finalresult );
  return $finalresult;
}

  • « Tomcat6 sslv3 only disable sslv2 list files
  • Vmware esxi ovf export import ovftool errors read only compressed vmdk vhd kensho »

Published

Apr 2, 2012

Category

bat-vbs-perl

~448 words

Tags

  • bat-vbs-perl 51
  • perl 14
  • strings 6