10-26-2018
From my OpenBSD firewall I use PERL to reboot my cable modem around 3:00 am. I do this daily to obtain a new IP from my ISP otherwise I end up with a static IP for weeks. The procedure I use:
Send modem GET command with username and password to login. (unable to send a POST only GET)
After login send GET command to get webpage (HTML) that contains the sessionKey.
Note: I parse this page using PERL to get the sessionKey. (token value)
Send POST command to modem with sessionKey and reboot command to reboot modem. (sessionKey is required)
PERL is installed in the base install of OpenBSD. So I use this along with PERL module HTTP::Tiny to achieve the above. I was using PERL module HTML::TokeParser::Simple to parse the webpage (HTML) from the GET command I send to obtain the sessionKey (token value) that I send in my POST command.
The reason I asked the question reference parsing the HTML using PERL is that by default HTML::TokeParser::Simple isn't installed on OpenBSD by default and I had to install that as a package. I was just trying to find another means.
This User Gave Thanks to azdps For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
Is it possible to delcare hashes in KSH the way we do it in Perl.
Like I want to declare something like:
fruits="Juicy"
fruits="healthy"
fruits="sour"
echo fruits
Ofcourse this piece of code does not work in KSH. Please let me know if there is a way of doing it in KSH.
... (2 Replies)
Discussion started by: tipsy
2 Replies
2. Shell Programming and Scripting
Any clue to write something to a particular location in Perl?
Suppose
$line = ‘abc cde 1234”
How to write ( example string "test") on location 4 without parsing the whole line.
Output should be $line = ‘abctest 1234”
this is not search and replace. just to add substring into... (3 Replies)
Discussion started by: jaivipin
3 Replies
3. UNIX for Dummies Questions & Answers
Let's assume that I have a file with contents delimited by pipe:
"The mouse|ran up|the|clock"
"May|had a|little|lamb"
How would I use 'substr' to get the 3rd field. For example, "the" from the first line, and "little" from the second line?
# Loop over a file and read $LINE {
... (2 Replies)
Discussion started by: ChicagoBlues
2 Replies
4. UNIX for Dummies Questions & Answers
Hi friends,
I have written a perl code and it works fine but I am not sure tommorow it works or not, please help me.
problem : When diff is 1 then success other than its failure but tomorrow its 20090401 and the enddate is 20090331. thats why I write the code this type but it does not work and... (1 Reply)
Discussion started by: tukuna82
1 Replies
5. Shell Programming and Scripting
Hi Everyone,
$tmp="20090620231013";
$tmp = substr($tmp,0,8)." ".substr($tmp,8,2).":".substr($tmp,10,2).":".substr($tmp,12,2);
So my output is:
20090620 23:10:13.
I only can think substr is easy, any perl can do this just one line very simple efficient one? :eek:
Thanks (3 Replies)
Discussion started by: jimmy_y
3 Replies
6. Shell Programming and Scripting
Hi Everyone,
# cat a.txt
a;b;c;64O
a;b;c;d;ee;f
# cat a.pl
#!/usr/bin/perl
use strict;
use warnings;
my $tmp3 = ",,a,,b,,c,,d,,e,,f,,";
open(my $FA, "a.txt") or die "$!";
while(<$FA>) {
chomp;
my @tmp=split(/\;/, $_);
if ( ($tmp =~ m/^(64O)/i) || ($tmp... (3 Replies)
Discussion started by: jimmy_y
3 Replies
7. Shell Programming and Scripting
Hi,
I have nine files looking similar to file1 & file2 below.
File1:
1 ABCA1
1 ABCC8
1 ABR:N
1 ACACB
1 ACAP2
1 ACOT1
1 ACSBG
1 ACTR1
1 ACTRT
1 ADAMT
1 AEN:N
1 AKAP1File2:
1 A4GAL
1 ACTBL
1 ACTL7 (4 Replies)
Discussion started by: seqbiologist
4 Replies
8. Shell Programming and Scripting
I want to match the number exactly from the variable which has multiple numbers seperated by pipe symbol similar to search in egrep.below is the code which i tried
#!/usr/bin/perl
my $searchnum = $ARGV;
my $num = "148|1|0|256";
print $num;
if ($searchnum =~ /$num/)
{
print "found";
}... (2 Replies)
Discussion started by: kar_333
2 Replies
9. Shell Programming and Scripting
I have a command like this:
listdb ID923 -l |gawk '{if (substr($0,37,1)==1 && NR == 3)print "YES" else if (substr ($0,37,1)==0 && NR == 3) print "NO"}'
This syntax doesn't work. But I was able to get this to work:
listdb ID923 -l |gawk '{if (substr($0,37,1)==1 && NR == 3)print "YES"}'
... (4 Replies)
Discussion started by: newbie2010
4 Replies
10. UNIX for Dummies Questions & Answers
awk '/^>/{id=$0;next}length>=7 { print id, "\n"$0}' Test.txt
Can I use substr to achieve the same task?
Thanks! (8 Replies)
Discussion started by: Xterra
8 Replies
bytes(3pm) Perl Programmers Reference Guide bytes(3pm)
NAME
bytes - Perl pragma to force byte semantics rather than character semantics
NOTICE
This pragma reflects early attempts to incorporate Unicode into perl and has since been superseded. It breaks encapsulation (i.e. it
exposes the innards of how the perl executable currently happens to store a string), and use of this module for anything other than
debugging purposes is strongly discouraged. If you feel that the functions here within might be useful for your application, this possibly
indicates a mismatch between your mental model of Perl Unicode and the current reality. In that case, you may wish to read some of the perl
Unicode documentation: perluniintro, perlunitut, perlunifaq and perlunicode.
SYNOPSIS
use bytes;
... chr(...); # or bytes::chr
... index(...); # or bytes::index
... length(...); # or bytes::length
... ord(...); # or bytes::ord
... rindex(...); # or bytes::rindex
... substr(...); # or bytes::substr
no bytes;
DESCRIPTION
The "use bytes" pragma disables character semantics for the rest of the lexical scope in which it appears. "no bytes" can be used to
reverse the effect of "use bytes" within the current lexical scope.
Perl normally assumes character semantics in the presence of character data (i.e. data that has come from a source that has been marked as
being of a particular character encoding). When "use bytes" is in effect, the encoding is temporarily ignored, and each string is treated
as a series of bytes.
As an example, when Perl sees "$x = chr(400)", it encodes the character in UTF-8 and stores it in $x. Then it is marked as character data,
so, for instance, "length $x" returns 1. However, in the scope of the "bytes" pragma, $x is treated as a series of bytes - the bytes that
make up the UTF8 encoding - and "length $x" returns 2:
$x = chr(400);
print "Length is ", length $x, "
"; # "Length is 1"
printf "Contents are %vd
", $x; # "Contents are 400"
{
use bytes; # or "require bytes; bytes::length()"
print "Length is ", length $x, "
"; # "Length is 2"
printf "Contents are %vd
", $x; # "Contents are 198.144"
}
chr(), ord(), substr(), index() and rindex() behave similarly.
For more on the implications and differences between character semantics and byte semantics, see perluniintro and perlunicode.
LIMITATIONS
bytes::substr() does not work as an lvalue().
SEE ALSO
perluniintro, perlunicode, utf8
perl v5.16.3 2013-02-26 bytes(3pm)