Perhaps a heavily commented and hard coded example?
Code:
#!/usr/bin/perl
use strict;
use warnings;
my $in="file";
open my $fh, '<', $in or die "Could not read $in: $!\n";
# start reading the file
while ( my $line = <$fh> ) {
# find line with pattern BOX or CYLINDER
if ( $line =~ /BOX|CYLINDER/ ) {
chomp $line; # remove newline if exist
my @captured_lines; # create a empty work space
push @captured_lines, $line; # first store BOX or CYLINDER
# we know the next two lines belongs with BOX or CYLINDER
# let's get them
foreach (1..2) {
my $extra_line = <$fh>;
chomp $extra_line;
push @captured_lines, $extra_line;
}
# manipulate the strings
$captured_lines[0] =~ s/(\w+)/_\u\L$1/g; # convert BOX into _Box and
# CYLINDER into _Cylinder
$captured_lines[1] =~ s/ /,/g; # convert the spaces to `,' for
# the first line after match
print join (" ", @captured_lines) . "\n"; # display processed block
}
# optional: stop reading the file after manipulating CYLINDER
if ( $line =~ /CYLINDER/ ) { last }
}
close $fh;
Last edited by Aia; 05-29-2014 at 12:07 AM..
Reason: code mispell
Hi There
I needed to write a Unix shell script which will pick up the data from a .CSV file and reformat it as per the requirement and write it to another .CSV file.
Currently I am in the proess of Data Import to "Remedy System" (A one kind of incident mangement Application) and this... (8 Replies)
Hi all,
I have written a shell script to search a specified directory (e.g. /home/user) for a list of specific words (shown as ${TMPDIR}/wordlist below). The script works well enough, but I was wondering if there was a way to display the line number that the word is found on?
Thanks!
cat... (1 Reply)
Hi all,
I need a script specially using loops to print below output...
variables x, a and b will be read from user...
x a b
x+1 a b+1
x+2 a b+2
x+3 a+1 b
x+4 a+1 b+1
x+5 a+1 b+2
for example....
1 ... (4 Replies)
Hi,
i need a perl script which reads the file, content is given below. and output in new file.
TARGET DRIVE IO1 IO2 IO3 IO4 IO5
------------ --------- --------- --------- --------- ---------
0a.1.8 266 236 ... (3 Replies)
Hello,
I need help with a perl script that will process a text file and match virtual server name to profile(s). the rest will be ignored.
Virtual server name follows the word "virtual" in the begging of the line.
There could be multiple profiles assigned to one virtual server.
For example, ... (3 Replies)
I am using aqua studio DB. I need to retrive the data from my database using uxin script in .csv format. i am using select query along with the joins. my o/p in the DB is of the below format.
Cycle IDCycle StatusRecord 98N-0000ACV23-3636FCliet Level (Af)Success1689393HF-J7879-09090RCliet Level... (1 Reply)
Hi ,
i am generating some data by firing sql query with connecting to the database by my solaris box.
The below one should be the header line of my excel ,here its coming in separate row.
TO_CHAR(C. CURR_EMP_NO
---------- ---------------
LST_NM... (6 Replies)
Hi forum members. It has been several years since my last post. Currently I am using fairly large datasets on a day to day basis for handling immigration cases at a law firm. Our Input file is filled out by our secretary staff. The first column is the case ID-sample ID then the second column is... (9 Replies)
We have the data looks like below in a log file.
I want to generat files based on the string between two hash(#) symbol like below
Source:
#ext1#test1.tale2 drop
#ext1#test11.tale21 drop
#ext1#test123.tale21 drop
#ext2#test1.tale21 drop
#ext2#test12.tale21 drop
#ext3#test11.tale21 drop... (5 Replies)
Discussion started by: Sanjeev G
5 Replies
LEARN ABOUT DEBIAN
acme::brainfuck
Acme::Brainfuck(3) User Contributed Perl Documentation Acme::Brainfuck(3)NAME
Acme::Brainfuck - Embed Brainfuck in your perl code
SYNOPSIS
#!/usr/bin/env perl
use Acme::Brainfuck;
print 'Hello world!', chr ++++++++++. ;
DESCRIPTION
Brainfuck is about the tiniest Turing-complete programming language you can get. A language is Turing-complete if it can model the opera-
tions of a Turing machine--an abstract model of a computer defined by the British mathematician Alan Turing in 1936. A Turing machine con-
sists only of an endless sequence of memory cells and a pointer to one particular memory cell. Yet it is theoretically capable of perform-
ing any computation. With this module, you can embed Brainfuck instructions delimited by whitespace into your perl code. It will be trans-
lated into Perl as parsed. Brainfuck has just just 8 instructions (well more in this implementation, see "Extensions to ANSI Brainfuck"
below.) which are as follows
Instructions
+ Increment
Increase the value of the current memory cell by one.
- Decrement
Decrease the value of the current memory cell by one.
> Forward
Move the pointer to the next memory cell.
< Back
Move the pointer to the previous memory cell.
, Input
Read a byte from Standard Input and store it in the current memory cell.
. Output
Write the value of the current memory cell to standard output.
[ Loop
If the value of the current memory cell is 0, continue to the cell after the next ']'.
] Next
Go back to the last previous '['.
Extensions to ANSI Brainfuck
This implementation has extra instructions available. In order to avoid such terrible bloat, they are only available if you use the ver-
bose pragma like so:
use Acme::Brainfuck qw/verbose/;
The extra instructions are:
~ Reset
Resets the pointer to the first memory cell and clear all memory cells.
# Peek
Prints the values of the memory pointer and the current memory cell to STDERR. See also "Debugging" below.
Debugging
By using the debug pragma like this:
use Acme::Brainfuck qw/debug/;
you can dump out the generated perl code. (Caution: it is not pretty.) The key to understanding it is that the memory pointer is repre-
sented by $p, and the memory array by @m Therefore the value of the current memory cell is $m[$p].
RETURN VALUE
Each sequence of Brainfuck instructions becomes a Perl block and returns the value of the current memory cell.
EXAMPLES
JABH
#!/usr/bin/env perl
use Acme::Brainfuck;
print "Just another ";
++++++[>++++++++++++++++<-]>
++.--
>+++[<++++++>-]<.>[-]+++[<------>-]<
+.-
+++++++++.---------
++++++++++++++.--------------
++++++.------
>+++[<+++++++>-]<.>[-]+++[<------->-]<
+++.---
+++++++++++.-----------
print " hacker.
";
Countdown
#!/usr/bin/env perl
use strict;
use Acme::Brainfuck qw/verbose/;
print "Countdown commencing...
";
++++++++++[>+>+<<-]
>>+++++++++++++++++++++++++++++++++++++++++++++++<<
++++++++++[>>.-<.<-]
print "We have liftoff!
";
Reverse
#!/usr/bin/env perl
use Acme::Brainfuck qw/verbose/;
while(1)
{
print "Say something to Backwards Man and then press enter: ";
+[->,----------]<
print 'Backwards Man says, "';
[+++++++++++.<]<
print "" to you too.
";
~
}
Math
#!/usr/bin/env perl
use Acme::Brainfuck;
use strict;
use warnings;
my $answer = +++[>++++++<-]> ;
print "3 * 6 = $answer
";
VERSION
1.1.1 Apr 06, 2004
AUTHOR
Jaldhar H. Vyas E<lt>jaldhar@braincells.comE<gt>
THANKS
Urban Mueller - The inventor of Brainfuck.
Damian Conway - For twisting perl to hitherto unimaginable heights of weirdness.
Marco Nippula <http://www.hut.fi/~mnippula/> - Some code in this module comes from his brainfuck.pl
Mr. Rock - Who has a nice Brainfuck tutorial at <http://www.cydathria.com/bf/>. Some of the example code comes from there.
COPYRIGHT AND LICENSE
Copyright (c) 2004, Consolidated Braincells Inc.
Licensed with no warranties under the Crowley Public License:
"Do what thou wilt shall be the whole of the license."
perl v5.8.3 2004-04-06 Acme::Brainfuck(3)