A Beginner's Guide to Perl Expect Bindings - A Simple Walkthrough

Basic Perl “Hello World” Script (hello.pl)#

Let’s start with the basics. Here is a straightforward “Hello World” script written in Perl. Create a new file and name it hello.pl.

#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;

print "-----------\n",
      "Hello World\n",
      "-----------\n";

In this script, we’re using Perl’s built-in modules for error handling (use strict; use warnings; use diagnostics;) to make sure the code is robust.

Introducing Expect Bindings with Perl (test.pl)#

Now, let’s dive into the main topic: how to use Expect bindings in a Perl script. Create another file, test.pl, and add the following code:

How To Get The Current Epoch Time (Unix Timestamp)

  • PHP
  • PostgreSQL
  • powershell
  • Python
  • ruby
  • shell
  • sql server
  • unix
  • Unix Timestamp
  • vbscript

disableHLJS: false#

  • Perl:
time
  • PHP:
time()
  • Ruby:
Time.now # (or Time.new). To display the epoch: Time.now.to_i
  • Python:
import time # first, then int(time.time())
  • Java:
long epoch = System.currentTimeMillis()/1000;
  • Microsoft .NET C#:
epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
  • VBScript/ASP:
DateDiff("s", "01/01/1970 00:00:00", Now())
  • Erlang:
calendar:datetime_to_gregorian_seconds(calendar:now_to_universal_time( now()))-719528*24*3600. # OR element(1, now()) * 10000 + element(2, now()).
  • MySQL:
SELECT unix_timestamp(now())
  • PostgreSQL:
SELECT extract(epoch FROM now());
  • Oracle PL/SQL:
SELECT (SYSDATE - TO_DATE('01-01-1970 00:00:00', 'DD-MM-YYYY HH24:MI:SS')) * 24 * 60 * 60 FROM DUAL
  • SQL Server:
SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())
  • JavaScript:
Math.round(new Date().getTime()/1000.0) // getTime() returns time in milliseconds.
  • Unix/Linux Shell:
date +%s
  • PowerShell:
Get-Date -UFormat "%s" # Produces: 1279152364.63599
  • Actionscript:
(new Date()).time
  • Other OS’s Command line:
perl -e "print time" # (If Perl is installed on your system)
  • ColdFusion (CFML) MX 6.1+:
#int( getTickCount() / 1000 )#
  • Bash Command Line:
date +%s

Perl – system load


To find the system load use the following perl snippet :

  1. System load of last one minute :
my $system_load = exec('<a class="zem_slink" title="Uptime" rel="wikipedia" href="http://en.wikipedia.org/wiki/Uptime">uptime</a> | awk -F "load average: " \'{ print $2 }\' | cut -d, -f1');
my $system_load = qx('uptime | awk -F "load average: " \'{ print $2 }\' | cut -d, -f1');
  1. System load of last 5 minutes :
my $system_load = exec('uptime | awk -F "load average: " \'{ print $2 }\' | cut -d, -f2');
my $system_load = qx('uptime | awk -F "load average: " \'{ print $2 }\' | cut -d, -f2');
  1. System load of last 15 minutes :
my $system_load = exec('uptime | awk -F "load average: " \'{ print $2 }\' | cut -d, -f3');
my $system_load = qx('uptime | awk -F "load average: " \'{ print $2 }\' | cut -d, -f3');

Perl – How to Read a Text File into a Variable – 6 ways to do it

6 Ways to Read a Text File into a Variable

If you are working with large file(s) you might consider using File::Slurp. It is much fast than the conventional:

{
  local $/=undef;
  open FILE, "myfile" or die "Couldn't open file: $!";
  binmode FILE;
  $string = &lt;FILE>;
  close FILE;
}

{
  local $/=undef;
  open FILE, "myfile" or die "Couldn't open file: $!";
  $string = &lt;FILE>;
  close FILE;
}

open FILE, "myfile" or die "Couldn't open file: $!";
$string = join("", &lt;FILE>);
close FILE;
  
open FILE, "myfile" or die "Couldn't open file: $!";
while (&lt;FILE>){
 $string .= $_;
}
close FILE;

open( FH, "sample.txt") || die("Error: $!\n");
read(FH, $data, 2000);
close FH;

The format for the read function is: