Suggestions?

2001-06-27 Thread Bill Pierson

Greetings all - I realize this is a very broad question, however any suggestions would 
be appreciated.

I'm looking to purchase good learning tools about programming in PERL. I've been 
programming with it for several years, but I've never truly learned the basics - just 
looked at other code and learned from that.
Specifically I'd like to learn from "ground zero" about variables, hashes, etc. as 
well as MySQL connectivity.

I'd like to find something that is concise - I have several projects that I'll be 
working on in the very near future, and fine-tuning my knowledge would be of great 
benefit.

Again, any suggestions will be appreciated.




XML suggestions

2011-07-12 Thread Doug Bradbury
Does anyone have suggestions for an active and easy to use XML building & 
parsing module?

Doug Bradbury


--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




some suggestions

2012-03-22 Thread Chris Stinemetz
I would like to use the number on the left as a key in a hash and use
the number on the right as the value pair to the key. Then print the
values for each hour that have the same key. Maybe this is a good
example for an array of hashes, but I not real sure how to begin. Any
help is greatly appreciated.

Below is the input data:

Hr 12
0001 2
0002 3
0003 1
Hr 13
0001 2
0002 3
0003 1
Hr 14
0001 2
0002 3
0003 1

Desired output below:

  12 13 14
00012   2  2
00023   3  3
00031   1  1

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Queue Suggestions?

2003-04-05 Thread Jeff Westman
I'm posed with a problem, looking for suggestions for possible resolution.  I
have a script that has many steps in it, including telnet & ftp sessions,
database unloads, and other routines.  This script will run on a server,
accessing a remote server.  This works fine.  I will likely have several
dozen (maybe as many as 100) iterations of this script running
simultaneously.  The problem is, that their is a "bottleneck" towards the end
of my script -- I have to call a 3rd party process that is single-threaded. 
This means that if I have ~100 versions of my script running, I can only have
one at a time execute the 3rd party software.  It is very likely that
multiple versions will arrive at this bottle-neck junction at the same time. 
If I had more than one call the third party program, one will run, one will
loose, and die.  

So I am looking for suggestions on how I might attack this problem.  I've
thought about building some sort of external queue (like a simple hash file).
 The servers have numbers like server_01, server_02, etc.  When a iteration
of the script completes, it writes out it's server name to the file, pauses,
then checks of any other iteration is running the third party software.  If
one is running, it waits, with it's server name at the top of the file queue,
waiting.  A problem might be if again, two or more versions want to update
this queue file, so I thought maybe a random-wait period before writing to
the file-queue.

I'm open to other ideas.  (please don't suggest we rename or copy the third
party software, it just isn't possible).  I'm not looking for code, per se,
but ideas I can implement that will guarantee I will always only have one
copy of the external third party software running (including pre-checks,
queues, etc.

Thanks,

Jeff

__
Do you Yahoo!?
Yahoo! Tax Center - File online, calculators, forms, and more
http://tax.yahoo.com

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Suggestions?

2001-06-27 Thread Pierre Smolarek

I learnt with Sams teach yourself perl in 21 days did teh trick here...
from that i graped the basics and then got reference books like Programming
perl, perl cookbook by oreilly

I have an html version of Sams, which i can send to you by request,

Pierre

- Original Message -
From: "Bill Pierson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, June 27, 2001 4:57 PM
Subject: Suggestions?


Greetings all - I realize this is a very broad question, however any
suggestions would be appreciated.

I'm looking to purchase good learning tools about programming in PERL. I've
been programming with it for several years, but I've never truly learned the
basics - just looked at other code and learned from that.
Specifically I'd like to learn from "ground zero" about variables, hashes,
etc. as well as MySQL connectivity.

I'd like to find something that is concise - I have several projects that
I'll be working on in the very near future, and fine-tuning my knowledge
would be of great benefit.

Again, any suggestions will be appreciated.






Re: Suggestions?

2001-06-27 Thread Chas Owens

On 27 Jun 2001 11:57:49 -0400, Bill Pierson wrote:
> Greetings all - I realize this is a very broad question, however any suggestions 
>would be appreciated.
> 
> I'm looking to purchase good learning tools about programming in PERL. I've been 
>programming with it for several years, but I've never truly learned the basics - just 
>looked at other code and learned from that.
> Specifically I'd like to learn from "ground zero" about variables, hashes, etc. as 
>well as MySQL connectivity.
> 
> I'd like to find something that is concise - I have several projects that I'll be 
>working on in the very near future, and fine-tuning my knowledge would be of great 
>benefit.
> 
> Again, any suggestions will be appreciated.
>

Canon:
Camel (_Programming Perl_ 3rd edition by Wall, et al)
Llama (_Learning Perl_ 2nd edition by Schwartz) (3rd will be out soon)

Should get:
_Object Oriented Perl_  by Conway
_Mastering Regular Expressions_ by Jeffrey E. F. Friedl
_Perl Cookbook_ by Tom Christiansen & Nathan Torkington

Good depending on you job:
_Programming the Perl DBI_   by Alligator Descartes & Tim Bunce
_Data Munging with Perl_ by David Cross


I hear that Manning is putting out a regexp book written by someone on
this list, but I can't remember his name (and am too lazy to search for
it).

--
Today is Pungenday, the 32nd day of Confusion in the YOLD 3167
Keep the Lasagna flying!





Re: Suggestions?

2001-06-27 Thread Chris Hedemark

Someone recommended a SAMS book that will teach you perl in 21 days.  Get
the O'Reilly "Llama" book ("Learning Perl") and spend about an hour a day to
finish in less than a week and a half.

There are a few other O'Reilly titles I really like:

"Perl in a Nutshell" - great reference
"Perl for System Administration" - If you are a sysadmin or webmaster this
is a must-have.

I want to get "Programming Perl" (the Camel book) as well as their Win32
book (even though most of my work is currently in UNIX).

Chris Hedemark - Hillsborough, NC
http://yonderway.com
- Original Message -
From: "Bill Pierson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, June 27, 2001 11:57 AM
Subject: Suggestions?


Greetings all - I realize this is a very broad question, however any
suggestions would be appreciated.

I'm looking to purchase good learning tools about programming in PERL. I've
been programming with it for several years, but I've never truly learned the
basics - just looked at other code and learned from that.
Specifically I'd like to learn from "ground zero" about variables, hashes,
etc. as well as MySQL connectivity.

I'd like to find something that is concise - I have several projects that
I'll be working on in the very near future, and fine-tuning my knowledge
would be of great benefit.

Again, any suggestions will be appreciated.





Re: Suggestions?

2001-06-27 Thread Jos I. Boumans

so far i've read
learning perl (my first book a few months ago, really good, randal++)
programming perl
advanced perl programming

all of them were worth their cash... i'm looking for the conway book now and
i'd recommend these books to everyone

on a side note, you might also want to look at some online tutorials, as
well as the tuts that come with perl it self (like perlreftut)

hth,

Jos Boumans

- Original Message -
From: "Bill Pierson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, June 27, 2001 5:57 PM
Subject: Suggestions?


Greetings all - I realize this is a very broad question, however any
suggestions would be appreciated.

I'm looking to purchase good learning tools about programming in PERL. I've
been programming with it for several years, but I've never truly learned the
basics - just looked at other code and learned from that.
Specifically I'd like to learn from "ground zero" about variables, hashes,
etc. as well as MySQL connectivity.

I'd like to find something that is concise - I have several projects that
I'll be working on in the very near future, and fine-tuning my knowledge
would be of great benefit.

Again, any suggestions will be appreciated.




Need suggestions

2004-06-29 Thread David Arnold
All,

Being only moderately comfortable with Perl, I find myself in need of some
direction on a more complex task. I have a tex file containing a large
number of exercises shaped as follows:

\ex This is the text of the exercise as it appears in the book.  The
exercise may have several parts.
\pt This is the first part.
\ans This is the solution to the first part.  
\endans
\backans{This is the answer to the first part that goes in the back of
the book. These are present only for the odd-numbered exercises.}
\pt This is the second part.
\ans This is the solution to the second  part.  
\endans
\backans{This is the answer to the second part that goes in the back
of the book.} 

I need to change each of these into the following form:

\begin{exer}
  \begin{exertext}
This is the text of the exercise as it appears in the book.  The
exercise may have several parts.
\begin{subenumerate}
\item This is the first part.
\item This is the second part.
\end{subenumerate}
  \end{exertext}
  \begin{soln}
\begin{subsoln}
\item  This is the solution to the first part.  
\item This is the solution to the second  part. 
\end{subsoln}
  \end{soln}
  \begin{answer}
\begin{subanswer}
\item This is the answer to the first part that goes in the back of
  the book. These are present only for the odd-numbered exercises.
\item This is the answer to the second part that goes in the back
  of the book.
\end{subanswer}
  \end{answer}
\end{exer}

I am looking for suggestions on how to attack this assignment. Perhaps
there are modules on CPAN that would help me of which I am not aware. Or,
perhaps a kind soul will suggest an attack.

Thanks. Any help appreciated.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




looking for suggestions

2010-10-07 Thread jm
all,

below is a sub i created to try to properly capitalize surnames of
irish/scottish descent, converting Macarthur => MacArthur, o'donnell
=> O'Donnell, etc.

it works as intended but i was wondering if anyone can suggest
improvements in size and efficiency (realizing the two are not
necessarily compatible).
also rules for any additional naming styles would be appreciated since
the sites using this will have a fairly global audience, name-wise.

thanks in advance,
joe

#

print &surname(NAME => $ARGV[0]) . "\n";


#   SUB SURNAME
#   removes leading/trailing whitespace
#   consolidates grouped whitespaces into single whitespaces
#   capitalizes first letter after "Mac/Mc/'" in name (names of
Scottish/Irish descent)
#   capitalizes first letter of name upon return
sub surname
{
my %options = @_;
#   $options{NAME} = name to capitalize internally, if appropriate

#   remove leading and trailing whitespace, consolidate whitespace
groupings into single whitespaces
$options{NAME} = join(' ', split(' ', $options{NAME}));

if ($options{NAME} =~ /^M[a]*c|'/i)
{
$options{NAME} =~ m/c|'/g;
my $pos = pos $options{NAME};
substr($options{NAME}, $pos, 1) = uc(substr($options{NAME}, 
$pos, 1));
}   #   end of  if ($options{NAME} =~ /^M[a]*c|'/)

return(ucfirst($options{NAME}));
}   #   end of  sub surname

#
-- 
since this is a gmail account, please verify the mailing list is
included in the reply to addresses

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: XML suggestions

2011-07-12 Thread Rob Dixon

On 12/07/2011 19:07, Doug Bradbury wrote:


Does anyone have suggestions for an active and easy to use XML
building & parsing module?


Hi Doug

Any code to write XML ends up looking very similar to the resulting XML
itself, although XML::Writer will make sure your syntax is correct for
you and avoid a lot of obvious errors.

As for parsing, it largely depends on what you want to do once you have
parsed tha XML. But XML::LibXML is a good all-rounder (although with
awkward documentation). XML::Twig and XML::TreeBuilder are also worth a
look.

HTH,

Rob

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: XML suggestions

2011-07-12 Thread Feng He
2011/7/13 Doug Bradbury :
> Does anyone have suggestions for an active and easy to use XML building & 
> parsing module?
>

For a simple XML parsing I have used the module XML::Simple which just run well.

Regards.

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: XML suggestions

2011-07-13 Thread Rob Coops
On Wed, Jul 13, 2011 at 3:27 AM, Feng He  wrote:

> 2011/7/13 Doug Bradbury :
> > Does anyone have suggestions for an active and easy to use XML building &
> parsing module?
> >
>
> For a simple XML parsing I have used the module XML::Simple which just run
> well.
>
> Regards.
>
> --
> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> For additional commands, e-mail: beginners-h...@perl.org
> http://learn.perl.org/
>
>
>
Recently having done some work with various XML libraries in perl I have to
recommend: XML::LibXML the documentation is well how to put it not
fantastic... but once you get passed that you are looking at probably the
fastest and most powerful library for XML parsing available in perl.

It really depends on what you are looking to do though, if you are aiming
for just a simple thing with only a few messages then don't worry
about XML::LibXML
and go for XML::Simple which is more then enough in most simple cases ;-)
I found that both Twig and Treebuilder are great if you are looking at
modifying the XML (add extra nodes, alter existing nodes) but since they
build a full tree structure for the XML file you are working with depending
on the size and complexity of the file this could cause serious memory
bloat, and even out of memory errors.

Personally I think that if you can stomach it getting past the somewhat
difficult XML::LibXML documentation it will provide you the best and fastest
way of working with XML files, but I have to be honest it took me several
years before I found a project where I needed the speed and power of LibXML.
On the other hand once learned... if you have the time to do so have a go at
it you will enjoy working with it once you know how to.

Regards,

Rob


Re: XML suggestions

2011-07-20 Thread Jenda Krynicky
From:   Rob Coops 
> It really depends on what you are looking to do though, if you are aiming
> for just a simple thing with only a few messages then don't worry
> about XML::LibXML
> and go for XML::Simple which is more then enough in most simple cases ;-)

Except that it's not so simple to set it up to give you consistent 
data structure with things like optional tag attributes and repeated 
tags. See http://www.perlmonks.org/?node_id=697036

> I found that both Twig and Treebuilder are great if you are looking at
> modifying the XML (add extra nodes, alter existing nodes) but since they
> build a full tree structure for the XML file you are working with depending
> on the size and complexity of the file this could cause serious memory
> bloat, and even out of memory errors.

XML::Twig (as the name suggests) is not supposed to build a full tree 
structure, but rather lets you work with parts of the document. The 
"twigs".

I personally believe XML::LibXML is overcomplicated, but some people 
seem to like it.

Jenda
= je...@krynicky.cz === http://Jenda.Krynicky.cz =
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
-- Terry Pratchett in Sourcery


-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: some suggestions

2012-03-22 Thread Jim Gibson
On 3/22/12 Thu  Mar 22, 2012  2:23 PM, "Chris Stinemetz"
 scribbled:

> I would like to use the number on the left as a key in a hash and use
> the number on the right as the value pair to the key. Then print the
> values for each hour that have the same key. Maybe this is a good
> example for an array of hashes, but I not real sure how to begin. Any
> help is greatly appreciated.
> 
> Below is the input data:
> 
> Hr 12
> 0001 2
> 0002 3
> 0003 1
> Hr 13
> 0001 2
> 0002 3
> 0003 1
> Hr 14
> 0001 2
> 0002 3
> 0003 1
> 
> Desired output below:
> 
>   12 13 14
> 00012   2  2
> 00023   3  3
> 00031   1  1

I would suggest using a hash-of-hashes. You have a two-level key: the first
(primary) key is the hour value: 12, 13, 14. The second (-ary) key is the
number from the left-hand column. The value is the number from the
right-hand column.

So read the file, save the hour keys in a variable (e.g. $hour), extract the
two numbers (e.g. $left, $right), and store the values in a two-level hash:

$hash{$hour}{$left} = $right;

Then, when you have read the entire file, print the data in your desired
format. 

The printing will be a little tricky as you are "inverting" your data with
respect to the keys, so you can't do a simple two-level traversal over the
nested hashes and print as you go.

If all you want is to print as shown, then you can invert the importance of
the keys and use this instead:

$inverted_hash{$left}{$hour} = $right;

Then you can traverse the "left" numbers and print the "hour" values for
each one.

Sometimes the trick for effective programming is defining the right data
structure.



-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: some suggestions

2012-03-22 Thread Shawn H Corey

On 12-03-22 05:23 PM, Chris Stinemetz wrote:

but I not real sure how to begin. Any
help is greatly appreciated.

Below is the input data:

Hr 12
0001 2
0002 3
0003 1
Hr 13
0001 2
0002 3
0003 1
Hr 14
0001 2
0002 3
0003 1

Desired output below:

   12 13 14
00012   2  2
00023   3  3
00031   1  1


The first question you should ask yourself when you need to write a 
script that manipulates data is: Is preserving the input order of the 
data important? If so, the using an array is the easiest way to do this. 
In this case, however, the objective is to rearrange the data, so we are 
free to use any data structure to hold the data.


The second question is: What is the best data structure for this task? 
The possibilities fall into three categories: one similar to the input 
structure, one similar to the output, and some intermediate one. The 
advance of the first is that it will take little processing of the input 
to achieve it but more processing of the output. The second choice is 
the same as the first but with input and output switched around. The 
third is the most complex and should only be used as a last resort. But 
of the first two, which is better?


Well, take a look at the structures of the data. The input is linear; it 
has one datum after another. The output is a table, two dimensional. If 
we store the data in a linear structure, like its input, we would still 
have to transform it to a two-dimensional one before we can output it. 
But if we can transform the input into a two-dimension structure, it can 
be easily outputted and we save ourselves a step. So, since preserving 
input order is not important, a hash of hashes seems the best structure.


When printing out a table, it's nice to have the column index or key as 
the inner one and the row index or key as the outer one. The column key 
is the Hr value, and the row key is from the lines with two numbers. So, 
the pseudo-code looks like this:


Create a variable to hold the Hr key;
For each line of input:
If the line starts with Hr:
Save the number in the Hr variable;
Else
Extract the key and value from the line;
Store it in a HoH with this key, the Hr key and the value
$HoH{$key}{$Hr_key} = $value;

Now output the table (exercise left to the reader) :).


--
Just my 0.0002 million dollars worth,
  Shawn

Programming is as much about organization and communication
as it is about coding.

[edited for today's programmers]
"Show me your code and conceal your interfaces, and I shall continue
to be mystified. Show me your interfaces, and I won't usually need
your code; it'll be obvious."
-- Fred Brooks

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: some suggestions

2012-03-22 Thread John W. Krahn

Chris Stinemetz wrote:

I would like to use the number on the left as a key in a hash and use
the number on the right as the value pair to the key. Then print the
values for each hour that have the same key. Maybe this is a good
example for an array of hashes, but I not real sure how to begin. Any
help is greatly appreciated.

Below is the input data:

Hr 12
0001 2
0002 3
0003 1
Hr 13
0001 2
0002 3
0003 1
Hr 14
0001 2
0002 3
0003 1

Desired output below:

   12 13 14
00012   2  2
00023   3  3
00031   1  1



$ echo "Hr 12
0001 2
0002 3
0003 1
Hr 13
0001 2
0002 3
0003 1
Hr 14
0001 2
0002 3
0003 1" | perl -e'

my ( @hours, %data );
while ( <> ) {
push @hours, $1 if /^hr\s*(\d+)/i;
$data{ $1 }{ $hours[ -1 ] } = $2 if /^(\d+)\s+(\d+)/;
}

print join( "\t", "", @hours ), "\n";
for my $row ( sort { $a <=> $b } keys %data ) {
print $row;
for my $col ( sort { $a <=> $b } keys %{ $data{ $row } } ) {
print "\t$data{$row}{$col}";
}
print "\n";
}
'
12  13  14
00012   2   2
00023   3   3
00031   1   1




John
--
Any intelligent fool can make things bigger and
more complex... It takes a touch of genius -
and a lot of courage to move in the opposite
direction.   -- Albert Einstein

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: some suggestions

2012-03-22 Thread John W. Krahn

John W. Krahn wrote:


$ echo "Hr 12
0001 2
0002 3
0003 1
Hr 13
0001 2
0002 3
0003 1
Hr 14
0001 2
0002 3
0003 1" | perl -e'

my ( @hours, %data );
while ( <> ) {
push @hours, $1 if /^hr\s*(\d+)/i;
$data{ $1 }{ $hours[ -1 ] } = $2 if /^(\d+)\s+(\d+)/;
}

print join( "\t", "", @hours ), "\n";
for my $row ( sort { $a <=> $b } keys %data ) {
print $row;
for my $col ( sort { $a <=> $b } keys %{ $data{ $row } } ) {
print "\t$data{$row}{$col}";
}
print "\n";
}
'
12 13 14
0001 2 2 2
0002 3 3 3
0003 1 1 1


Probably better:

$ echo "Hr 12
0001 2
0002 3
0003 1
Hr 13
0001 2
0002 3
0003 1
Hr 14
0001 2
0002 3
0003 1" | perl -e'

my ( @hours, %data );
while ( <> ) {
push @hours, $1 if /^hr\s*(\d+)/i;
$data{ $1 }{ $hours[ -1 ] } = $2 if /^(\d+)\s+(\d+)/;
}
print join( "\t", "", @hours ), "\n";
for my $row ( sort { $a <=> $b } keys %data ) {
print $row;
for my $col ( @hours ) {
print "\t$data{$row}{$col}";
}
print "\n";
}
'
12  13  14
00012   2   2
00023   3   3
00031   1   1




John
--
Any intelligent fool can make things bigger and
more complex... It takes a touch of genius -
and a lot of courage to move in the opposite
direction.   -- Albert Einstein

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: some suggestions

2012-03-22 Thread lina
On Fri, Mar 23, 2012 at 10:20 AM, John W. Krahn  wrote:
> John W. Krahn wrote:
>>
>>
>> $ echo "Hr 12
>> 0001 2
>> 0002 3
>> 0003 1
>> Hr 13
>> 0001 2
>> 0002 3
>> 0003 1
>> Hr 14
>> 0001 2
>> 0002 3
>> 0003 1" | perl -e'
>>
>> my ( @hours, %data );
>> while ( <> ) {
>>    push @hours, $1 if /^hr\s*(\d+)/i;
>>    $data{ $1 }{ $hours[ -1 ] } = $2 if /^(\d+)\s+(\d+)/;
>>    }
>>
>> print join( "\t", "", @hours ), "\n";
>> for my $row ( sort { $a <=> $b } keys %data ) {
>>    print $row;
>>    for my $col ( sort { $a <=> $b } keys %{ $data{ $row } } ) {
>>        print "\t$data{$row}{$col}";
>>        }
>>    print "\n";
>>    }
>> '
>> 12 13 14
>> 0001 2 2 2
>> 0002 3 3 3
>> 0003 1 1 1
>
>
> Probably better:
>
>
> $ echo "Hr 12
> 0001 2
> 0002 3
> 0003 1
> Hr 13
> 0001 2
> 0002 3
> 0003 1
> Hr 14
> 0001 2
> 0002 3
> 0003 1" | perl -e'
>
> my ( @hours, %data );
> while ( <> ) {
>    push @hours, $1 if /^hr\s*(\d+)/i;
>    $data{ $1 }{ $hours[ -1 ] } = $2 if /^(\d+)\s+(\d+)/;
>    }
> print join( "\t", "", @hours ), "\n";
> for my $row ( sort { $a <=> $b } keys %data ) {
>    print $row;
>    for my $col ( @hours ) {
>
>        print "\t$data{$row}{$col}";
>        }
>    print "\n";
>    }
> '
>        12      13      14
> 0001    2       2       2
> 0002    3       3       3
> 0003    1       1       1
>
>

Here I use:


push  @hours, $1 if(/Hr\b(.*)\b/) ;

$data{$1}{$hours[-1]} = $2 if(/\b(.+)\b(.*)\b/);

it reported, how can I fix it:


$ perl calen.pl
 12  13  14
Argument "0003 1" isn't numeric in sort at calen.pl line 23, <$_[...]> line 12.
Argument "0002 3" isn't numeric in sort at calen.pl line 23, <$_[...]> line 12.
Argument "0001 2" isn't numeric in sort at calen.pl line 23, <$_[...]> line 12.
Argument "Hr 12" isn't numeric in sort at calen.pl line 23, <$_[...]> line 12.
Argument "Hr 13" isn't numeric in sort at calen.pl line 23, <$_[...]> line 12.
Argument "Hr 14" isn't numeric in sort at calen.pl line 23, <$_[...]> line 12.
Hr 12   Hr 13   Hr 14   0001 2  0002 3  0003 1l
>

Thanks,
>
>

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: some suggestions

2012-03-22 Thread Jim Gibson

At 10:41 AM +0800 3/23/12, lina wrote:

On Fri, Mar 23, 2012 at 10:20 AM, John W. Krahn  wrote:

 John W. Krahn wrote:



 $ echo "Hr 12
 0001 2
 0002 3
 0003 1
 Hr 13
 0001 2
 0002 3
 0003 1
 Hr 14
 0001 2
 0002 3
 0003 1" | perl -e'

 my ( @hours, %data );
 while ( <> ) {
push @hours, $1 if /^hr\s*(\d+)/i;
$data{ $1 }{ $hours[ -1 ] } = $2 if /^(\d+)\s+(\d+)/;
}

 print join( "\t", "", @hours ), "\n";
 for my $row ( sort { $a <=> $b } keys %data ) {
print $row;
for my $col ( sort { $a <=> $b } keys %{ $data{ $row } } ) {
print "\t$data{$row}{$col}";
}
print "\n";
}
 '
 12 13 14
 0001 2 2 2
 0002 3 3 3
 0003 1 1 1



 Probably better:


 $ echo "Hr 12
 0001 2
 0002 3
 0003 1
 Hr 13
 0001 2
 0002 3
 0003 1
 Hr 14
 0001 2
 0002 3
 0003 1" | perl -e'

 my ( @hours, %data );
 while ( <> ) {
push @hours, $1 if /^hr\s*(\d+)/i;
$data{ $1 }{ $hours[ -1 ] } = $2 if /^(\d+)\s+(\d+)/;
}
 print join( "\t", "", @hours ), "\n";
 for my $row ( sort { $a <=> $b } keys %data ) {
print $row;
for my $col ( @hours ) {

print "\t$data{$row}{$col}";
}
print "\n";
}
 '
12  13  14
 00012   2   2
 00023   3   3
 00031   1   1




Here I use:


push  @hours, $1 if(/Hr\b(.*)\b/) ;

$data{$1}{$hours[-1]} = $2 if(/\b(.+)\b(.*)\b/);

it reported, how can I fix it:



By using the correct regex. You need to use \d or [0-9] in your 
regular expression rather than the dot character, which matches any 
character. You are matching and capturing the entire line with (.+), 
leaving nothing for the second capture group.





$ perl calen.pl
12   13  14
Argument "0003 1" isn't numeric in sort at calen.pl line 23, 
<$_[...]> line 12.
Argument "0002 3" isn't numeric in sort at calen.pl line 23, 
<$_[...]> line 12.
Argument "0001 2" isn't numeric in sort at calen.pl line 23, 
<$_[...]> line 12.

Argument "Hr 12" isn't numeric in sort at calen.pl line 23, <$_[...]> line 12.
Argument "Hr 13" isn't numeric in sort at calen.pl line 23, <$_[...]> line 12.
Argument "Hr 14" isn't numeric in sort at calen.pl line 23, <$_[...]> line 12.
Hr 12   Hr 13   Hr 14   0001 2  0002 3  0003 1l




Thanks,





--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/



--
Jim Gibson
j...@gibson.org

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: some suggestions

2012-03-23 Thread Chris Stinemetz
Thank you everyone. I'm still digesting this, but I do have a better
understanding.

Chris

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Handling Dates Suggestions

2003-10-08 Thread perl
Can someone offers some recommendation into using dates?

I will be referencing year, month,day,hour,min,sec. I will also need to
increment or decrement by hours, days, months and years.

thanks,
-rkl


-
eMail solutions by 
http://www.swanmail.com

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Queue Suggestions?

2003-04-05 Thread Stefan Lidman
Hello,

maybe you can use flock
perldoc -f flock

I have never used this and dont know if it works in your case.

/Stefan

> I'm posed with a problem, looking for suggestions for possible resolution.  I
> have a script that has many steps in it, including telnet & ftp sessions,
> database unloads, and other routines.  This script will run on a server,
> accessing a remote server.  This works fine.  I will likely have several
> dozen (maybe as many as 100) iterations of this script running
> simultaneously.  The problem is, that their is a "bottleneck" towards the end
> of my script -- I have to call a 3rd party process that is single-threaded.
> This means that if I have ~100 versions of my script running, I can only have
> one at a time execute the 3rd party software.  It is very likely that
> multiple versions will arrive at this bottle-neck junction at the same time.
> If I had more than one call the third party program, one will run, one will
> loose, and die.
> 
> So I am looking for suggestions on how I might attack this problem.  I've
> thought about building some sort of external queue (like a simple hash file).
>  The servers have numbers like server_01, server_02, etc.  When a iteration
> of the script completes, it writes out it's server name to the file, pauses,
> then checks of any other iteration is running the third party software.  If
> one is running, it waits, with it's server name at the top of the file queue,
> waiting.  A problem might be if again, two or more versions want to update
> this queue file, so I thought maybe a random-wait period before writing to
> the file-queue.
> 
> I'm open to other ideas.  (please don't suggest we rename or copy the third
> party software, it just isn't possible).  I'm not looking for code, per se,
> but ideas I can implement that will guarantee I will always only have one
> copy of the external third party software running (including pre-checks,
> queues, etc.
> 
> Thanks,
> 
> Jeff

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Queue Suggestions?

2003-04-05 Thread Wiggins d'Anconia
Jeff Westman wrote:
I'm posed with a problem, looking for suggestions for possible resolution.  I
have a script that has many steps in it, including telnet & ftp sessions,
database unloads, and other routines.  This script will run on a server,
accessing a remote server.  This works fine.  I will likely have several
dozen (maybe as many as 100) iterations of this script running
simultaneously.  The problem is, that their is a "bottleneck" towards the end
of my script -- I have to call a 3rd party process that is single-threaded. 
This means that if I have ~100 versions of my script running, I can only have
one at a time execute the 3rd party software.  It is very likely that
multiple versions will arrive at this bottle-neck junction at the same time. 
If I had more than one call the third party program, one will run, one will
loose, and die.  

So I am looking for suggestions on how I might attack this problem.  I've
thought about building some sort of external queue (like a simple hash file).
 The servers have numbers like server_01, server_02, etc.  When a iteration
of the script completes, it writes out it's server name to the file, pauses,
then checks of any other iteration is running the third party software.  If
one is running, it waits, with it's server name at the top of the file queue,
waiting.  A problem might be if again, two or more versions want to update
this queue file, so I thought maybe a random-wait period before writing to
the file-queue.
I'm open to other ideas.  (please don't suggest we rename or copy the third
party software, it just isn't possible).  I'm not looking for code, per se,
but ideas I can implement that will guarantee I will always only have one
copy of the external third party software running (including pre-checks,
queues, etc.
Currently I am implementing a system that has similar features, 
initially we developed a set of 3 queues, one a pre-processor that 
handles many elements simultaneously, a middle queue (incidentally that 
handles external encryptions/decryptions) which are "very" slow (seconds 
rather than milli or micro seconds, and a final queue that handles 
sending of files, FTP/SMTP which can be "very very" slow (hours 
depending on FTP timeout limits...grrr I know)  For this we were 
looking for essentially an event based state machine concept, which 
(thank god) led my searching to POE (since I keep mentioning it, this is 
why):  http://poe.perl.org  After getting over the POE learning curve 
developing my queues was a snap.  Because of business decisions we have 
since moved to a 9 queue system (inbound/outbound sets, plus a post 
processing queue, plus a reroute queue (don't ask)).  Essentially a 
similar setup would work for you, where your "middle" queue would have a 
threshold of 1 (aka only one process at a time) whereas all of our 
stages are acceptable to have multiple versions running, but we want to 
limit the number of encryption processes happening simultaneously 
because of load rather than problems.  You may also want to have a look 
at the Event CPAN module, it provides similar but lower level functionality.

I can provide more details about the implementation of our system and 
the development of our queues if you wish, but much to my dismay I 
cannot provide source... hopefully this will get you started in any 
case, be sure to check out the example POE uses, particularly the 
multi-tasking process example.

http://danconia.org

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Queue Suggestions?

2003-04-05 Thread Rob Dixon
Jeff Westman wrote:
> I'm posed with a problem, looking for suggestions for possible resolution.  I
> have a script that has many steps in it, including telnet & ftp sessions,
> database unloads, and other routines.  This script will run on a server,
> accessing a remote server.  This works fine.  I will likely have several
> dozen (maybe as many as 100) iterations of this script running
> simultaneously.  The problem is, that their is a "bottleneck" towards the end
> of my script -- I have to call a 3rd party process that is single-threaded.
> This means that if I have ~100 versions of my script running, I can only have
> one at a time execute the 3rd party software.  It is very likely that
> multiple versions will arrive at this bottle-neck junction at the same time.
> If I had more than one call the third party program, one will run, one will
> loose, and die.
>
> So I am looking for suggestions on how I might attack this problem.  I've
> thought about building some sort of external queue (like a simple hash file).
>  The servers have numbers like server_01, server_02, etc.  When a iteration
> of the script completes, it writes out it's server name to the file, pauses,
> then checks of any other iteration is running the third party software.  If
> one is running, it waits, with it's server name at the top of the file queue,
> waiting.  A problem might be if again, two or more versions want to update
> this queue file, so I thought maybe a random-wait period before writing to
> the file-queue.
>
> I'm open to other ideas.  (please don't suggest we rename or copy the third
> party software, it just isn't possible).  I'm not looking for code, per se,
> but ideas I can implement that will guarantee I will always only have one
> copy of the external third party software running (including pre-checks,
> queues, etc.

I don't think you need to get this complex Jeff. If your bottleneck were /at/
the end of the processing I would suggest a queue file as you describe, but
not as a means of synchronising the individual scripts. As its final stage each
script would simply append the details of its final operation to a serial file
and then exit. It would then be the job of a separate process to look at this
file periodically and execute any request which may have been written.
That will effectively serialise your operations.

However, since your process may not be able to exit straight away, what you
need, as Stefan says, is a simple dummy file lock. The following will do the
trick

use strict;
use Fcntl ':flock';

open my $que, ">> queue"
or die "Couldn't open lock file: $!";

flock $que, LOCK_EX or die "Failed to lock queue: $!";
do_single_thread_op();
flock $que, LOCK_UN;

close $que;

Fcntl is there solely to add the LOCK_EX and LOCK_UN identifiers. I've opened
the file for append so that the file will be created if it isn't already there, but
will be left untouched if it is. The 'flock' call to lock exclusively will wait
indefinitely until it succeeds, which means that the process has come to the
head of the queue. It then has sole access to your third-party process and can
use it as it needs to before unlocking the file, when the next process that it
may have been holding up will be granted its lock and can continue.

I hope this helps,

Rob




-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Queue Suggestions?

2003-04-05 Thread Jeff Westman
Rob,

I think you're right.  I think the idea would be to have the server name
next-to-be-processed append to the file, then the next step call a single
separate script (start it if not already running, otherwise simpley "wait")
that would lock the "control file", and this script would be the single entry
point to the 3rd party software, controlling processes to run only one at a
time.  My thinking before was to have this be part of every script (last
step), but then it got real complicated thinking about queues, random wait
times and then checking, double checking, etc. 

Sometimes simpler is better.  Thanks for the suggestion!

-Jeff

___

> I don't think you need to get this complex Jeff. If your
> bottleneck were /at/ the end of the processing I would suggest a
> queue file as you describe, but not as a means of synchronising
> the individual scripts. As its final stage each script would
> simply append the details of its final operation to a serial file
> and then exit. It would then be the job of a separate process to
> look at this file periodically and execute any request which may
> have been written. That will effectively serialise your
> operations.
> 
> However, since your process may not be able to exit straight
> away, what you need, as Stefan says, is a simple dummy file lock.
> The following will do the trick
> 
> use strict;
> use Fcntl ':flock';
> 
> open my $que, ">> queue"
> or die "Couldn't open lock file: $!";
> 
> flock $que, LOCK_EX or die "Failed to lock queue: $!";
> do_single_thread_op();
> flock $que, LOCK_UN;
> 
> close $que;
> 
> Fcntl is there solely to add the LOCK_EX and LOCK_UN identifiers.
> I've opened the file for append so that the file will be created
> if it isn't already there, but will be left untouched if it is.
> The 'flock' call to lock exclusively will wait indefinitely until
> it succeeds, which means that the process has come to the head of
> the queue. It then has sole access to your third-party process
> and can use it as it needs to before unlocking the file, when the
> next process that it may have been holding up will be granted its
> lock and can continue.
> 
> I hope this helps,
> 
> Rob
> 

__
Do you Yahoo!?
Yahoo! Tax Center - File online, calculators, forms, and more
http://tax.yahoo.com

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Perl Project - Suggestions

2001-10-18 Thread Paul Stewart

Hi there...

Please cc reply to my email address. :)

I have the following project to complete ASAP and am looking for guideance.
I am a complete Perl novice but understand little "tidbits" about Perl...
Any pieces of information would be most helpful or some software that helps
get things rolling..:)

I have a flat file database (perhaps will import to MySQL in future) which
contains a list of phone numbers and a few other small fields.  The database
needs to be queried via a web page.  It's a DSL phone number database and
will tell web visitors whether or not a company can provide DSL service to
them or not.

So the software runs the phone number and then depending on the results
returns one of four possibilities:

Phone number is residential and can get DSL service
Phone number is business and can get DSL service
Phone number *may* be in an area that can get DSL service
Phone number cannot get DSL service

Any ideas on how to get started?

Thanks in advance,

Paul




-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: looking for suggestions

2010-10-07 Thread Shawn H Corey

On 10-10-07 02:08 PM, jm wrote:

it works as intended but i was wondering if anyone can suggest
improvements in size and efficiency


See `perldoc perlre` and search for /\\u/, /\\U/, /\\l/, and /\\L/.


--
Just my 0.0002 million dollars worth,
  Shawn

Programming is as much about organization and communication
as it is about coding.

The secret to great software:  Fail early & often.

Eliminate software piracy:  use only FLOSS.

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: looking for suggestions

2010-10-07 Thread John W. Krahn

jm wrote:

all,


Hello,


below is a sub i created to try to properly capitalize surnames of
irish/scottish descent, converting Macarthur =>  MacArthur, o'donnell
=>  O'Donnell, etc.

it works as intended but i was wondering if anyone can suggest
improvements in size and efficiency (realizing the two are not
necessarily compatible).
also rules for any additional naming styles would be appreciated since
the sites using this will have a fairly global audience, name-wise.

thanks in advance,
joe

#

print&surname(NAME =>  $ARGV[0]) . "\n";


#   SUB SURNAME
#   removes leading/trailing whitespace
#   consolidates grouped whitespaces into single whitespaces
#   capitalizes first letter after "Mac/Mc/'" in name (names of
Scottish/Irish descent)
#   capitalizes first letter of name upon return
sub surname
{
my %options = @_;


Do you really need a hash for a single value?  Why not just a scalar?



#   $options{NAME} = name to capitalize internally, if appropriate

#   remove leading and trailing whitespace, consolidate whitespace
groupings into single whitespaces
$options{NAME} = join(' ', split(' ', $options{NAME}));

if ($options{NAME} =~ /^M[a]*c|'/i)


Why the use of the character class with just one character?  /[a]*/ and 
/a*/ do exactly the same thing.  And does that mean that "Maaac" is 
valid because that is what the pattern matches.  Perhaps you want 
/^Ma?c|'/i.




{
$options{NAME} =~ m/c|'/g;


Why are you running another regular expression?  And why are you using 
the /g option?




my $pos = pos $options{NAME};
substr($options{NAME}, $pos, 1) = uc(substr($options{NAME}, 
$pos, 1));


What happens if $options{NAME} only contains "Mac"?



}   #   end of  if ($options{NAME} =~ /^M[a]*c|'/)

return(ucfirst($options{NAME}));
}   #   end of  sub surname

#





John
--
Any intelligent fool can make things bigger and
more complex... It takes a touch of genius -
and a lot of courage to move in the opposite
direction.   -- Albert Einstein

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: looking for suggestions

2010-10-07 Thread jm
On Thu, Oct 7, 2010 at 1:22 PM, Shawn H Corey  wrote:
> On 10-10-07 02:08 PM, jm wrote:
>>
>> it works as intended but i was wondering if anyone can suggest
>> improvements in size and efficiency
>
> See `perldoc perlre` and search for /\\u/, /\\U/, /\\l/, and /\\L/.
>
>
> --
> Just my 0.0002 million dollars worth,
>  Shawn
>
> Programming is as much about organization and communication
> as it is about coding.
>
> The secret to great software:  Fail early & often.
>
> Eliminate software piracy:  use only FLOSS.
>
> --
> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> For additional commands, e-mail: beginners-h...@perl.org
> http://learn.perl.org/
>
>
>


Shawn and John,

thanks, your leads gave me this:

#
#!/usr/bin/perl

print &surname($ARGV[0]) . "\n";


#   SUB SURNAME
#   removes leading/trailing whitespace
#   consolidates grouped whitespaces into single whitespaces
#   capitalizes first letter after "Mac/Mc/'" in name (names of
Scottish/Irish descent)
#   capitalizes first letter of name upon return
sub surname
{
my $name = shift;
$name = join(' ', split(' ', $name));
$name =~ s/(^[Mm]a?c|.')(.*)/\u$1\u$2/;
return(ucfirst($name));
}   #   end of  sub surname
#

John, to answer some of your questions:
the hash was legacy from earlier subs i've created, to allow for a
more generic structure.  i don't forsee that necessity here so i
changed to a scalar.
i also changed the first regex to use a?; not as comfortable with
regex's as i'd like yet.
the 2nd regex was required to allow the pos function to extract the
position of the desired character.  per the docs, the /g is a
requirement for pos (at least as i understand it).
since 'mac'  is ignored by the substitution (as is any other
'conventional' name) the ucfirst takes care of all those upon
return().

i'm thinking about trying to include the whitespace cleanup in the
s/// but i'm thinking it'll be an ugly piece of code i'll always have
trouble understanding.

again, thanks for your help, gentlemen.
joe

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: looking for suggestions

2010-10-07 Thread Jim Gibson
On 10/7/10 Thu  Oct 7, 2010  12:20 PM, "jm"  scribbled:


> 
> Shawn and John,
> 
> thanks, your leads gave me this:
> 
> #
> #!/usr/bin/perl
> 
> print &surname($ARGV[0]) . "\n";
> 
> 
> # SUB SURNAME
> # removes leading/trailing whitespace
> # consolidates grouped whitespaces into single whitespaces
> # capitalizes first letter after "Mac/Mc/'" in name (names of
> Scottish/Irish descent)
> # capitalizes first letter of name upon return
> sub surname
> {
> my $name = shift;
> $name = join(' ', split(' ', $name));
> $name =~ s/(^[Mm]a?c|.')(.*)/\u$1\u$2/;
> return(ucfirst($name));
> } # end of sub surname
> #
> 


> i'm thinking about trying to include the whitespace cleanup in the
> s/// but i'm thinking it'll be an ugly piece of code i'll always have
> trouble understanding.

Use a separate regex instead of the join/split:

$name =~ s/\s+/ /g;

Not ugly. Easy to understand: "substitute any substring of one or more
whitespace characters with a single space character".

Don't try to add this to your other regex. I am not sure that can even be
done. I am sure that it is not worth it.

Here is one perhaps more specific to your problem that may be a little
harder to understand:

$name =~ s/ {2,}/ /g;

That one will not substitute a single space with a single space, but you are
not likely to notice the difference in execution speed (if there even is
one). \s includes spaces, tabs, and newlines, so they are not exactly
equivalent.

Other possibilities:

$name =~ s/\s{2,}/ /g;
$name =~ s/[ ]{2,}/ /g;
$name =~ s/\s\s+/ /g;



-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: looking for suggestions

2010-10-07 Thread jm
On Thu, Oct 7, 2010 at 3:01 PM, Jim Gibson  wrote:
> On 10/7/10 Thu  Oct 7, 2010  12:20 PM, "jm"  scribbled:
>
>
>>
>> Shawn and John,
>>
>> thanks, your leads gave me this:
>>
>> #
>> #!/usr/bin/perl
>>
>> print &surname($ARGV[0]) . "\n";
>>
>>
>> # SUB SURNAME
>> # removes leading/trailing whitespace
>> # consolidates grouped whitespaces into single whitespaces
>> # capitalizes first letter after "Mac/Mc/'" in name (names of
>> Scottish/Irish descent)
>> # capitalizes first letter of name upon return
>> sub surname
>> {
>> my $name = shift;
>> $name = join(' ', split(' ', $name));
>> $name =~ s/(^[Mm]a?c|.')(.*)/\u$1\u$2/;
>> return(ucfirst($name));
>> } # end of sub surname
>> #
>>
>
>
>> i'm thinking about trying to include the whitespace cleanup in the
>> s/// but i'm thinking it'll be an ugly piece of code i'll always have
>> trouble understanding.
>
> Use a separate regex instead of the join/split:
>
>    $name =~ s/\s+/ /g;
>
> Not ugly. Easy to understand: "substitute any substring of one or more
> whitespace characters with a single space character".
>
> Don't try to add this to your other regex. I am not sure that can even be
> done. I am sure that it is not worth it.
>
> Here is one perhaps more specific to your problem that may be a little
> harder to understand:
>
>    $name =~ s/ {2,}/ /g;
>
> That one will not substitute a single space with a single space, but you are
> not likely to notice the difference in execution speed (if there even is
> one). \s includes spaces, tabs, and newlines, so they are not exactly
> equivalent.
>
> Other possibilities:
>
>    $name =~ s/\s{2,}/ /g;
>    $name =~ s/[ ]{2,}/ /g;
>    $name =~ s/\s\s+/ /g;
>
>
>
> --
> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> For additional commands, e-mail: beginners-h...@perl.org
> http://learn.perl.org/
>
>
>

jim,

thanks.  i'd initially considered separate regex's for whitespace but
decided on the join because it takes care of all whitespace
(leading/trailing/embedded) in one fell swoop.  i won't be trying to
combine the join with the existing regex; decided i'm not that much of
a glutton for punishment.

i actually did understand the {2,} so maybe i'm not as far out in the
cold as i'd feared :) .

i appreciate your insights and suggestions.
joe


-- 
since this is a gmail account, please verify the mailing list is
included in the reply to addresses

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: looking for suggestions

2010-10-07 Thread Uri Guttman
> "JG" == Jim Gibson  writes:

  >> i'm thinking about trying to include the whitespace cleanup in the
  >> s/// but i'm thinking it'll be an ugly piece of code i'll always have
  >> trouble understanding.

  JG> Use a separate regex instead of the join/split:

  JG> $name =~ s/\s+/ /g;

normally i would agree, but his split also deleted leading and trailing
whitespace since split ' ' has that special side effect. 

  JG> Not ugly. Easy to understand: "substitute any substring of one or more
  JG> whitespace characters with a single space character".

even better and faster is to use tr/ //s (assuming only spaces and not
tabs/newlines, etc).

uri

-- 
Uri Guttman  --  u...@stemsystems.com    http://www.sysarch.com --
-  Perl Code Review , Architecture, Development, Training, Support --
-  Gourmet Hot Cocoa Mix    http://bestfriendscocoa.com -

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: looking for suggestions

2010-10-07 Thread John W. Krahn

jm wrote:


Shawn and John,

thanks, your leads gave me this:

#
#!/usr/bin/perl

print&surname($ARGV[0]) . "\n";


#   SUB SURNAME
#   removes leading/trailing whitespace
#   consolidates grouped whitespaces into single whitespaces
#   capitalizes first letter after "Mac/Mc/'" in name (names of
Scottish/Irish descent)
#   capitalizes first letter of name upon return
sub surname
{
my $name = shift;
$name = join(' ', split(' ', $name));
$name =~ s/(^[Mm]a?c|.')(.*)/\u$1\u$2/;
return(ucfirst($name));
}   #   end of  sub surname
#

John, to answer some of your questions:
the hash was legacy from earlier subs i've created, to allow for a
more generic structure.  i don't forsee that necessity here so i
changed to a scalar.
i also changed the first regex to use a?; not as comfortable with
regex's as i'd like yet.
the 2nd regex was required to allow the pos function to extract the
position of the desired character.  per the docs, the /g is a
requirement for pos (at least as i understand it).


You could use the @+ and @- arrays to find the start and end position of 
a regular expression.


perldoc perlvar



since 'mac'  is ignored by the substitution (as is any other
'conventional' name) the ucfirst takes care of all those upon
return().

i'm thinking about trying to include the whitespace cleanup in the
s/// but i'm thinking it'll be an ugly piece of code i'll always have
trouble understanding.




John
--
Any intelligent fool can make things bigger and
more complex... It takes a touch of genius -
and a lot of courage to move in the opposite
direction.   -- Albert Einstein

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: looking for suggestions

2010-10-07 Thread Shlomi Fish
On Thursday 07 October 2010 21:20:19 jm wrote:
> On Thu, Oct 7, 2010 at 1:22 PM, Shawn H Corey  wrote:
> > On 10-10-07 02:08 PM, jm wrote:
> >> it works as intended but i was wondering if anyone can suggest
> >> improvements in size and efficiency
> > 
> > See `perldoc perlre` and search for /\\u/, /\\U/, /\\l/, and /\\L/.
> > 
> > 
> > --
> > Just my 0.0002 million dollars worth,
> >  Shawn
> > 
> > Programming is as much about organization and communication
> > as it is about coding.
> > 
> > The secret to great software:  Fail early & often.
> > 
> > Eliminate software piracy:  use only FLOSS.
> > 
> > --
> > To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> > For additional commands, e-mail: beginners-h...@perl.org
> > http://learn.perl.org/
> 
> Shawn and John,
> 
> thanks, your leads gave me this:
> 
> #
> #!/usr/bin/perl
> 

Add strict and warnings.

> print &surname($ARGV[0]) . "\n";

Don't use leading-ampersand in subroutine calls. Also see:

http://perl-begin.org/tutorials/bad-elements/

Regards,

Shlomi Fish

-- 
-
Shlomi Fish   http://www.shlomifish.org/
Funny Anti-Terrorism Story - http://shlom.in/enemy

 She's a hot chick. But she smokes.
 She can smoke as long as she's smokin'.

Please reply to list if it's a mailing list post - http://shlom.in/reply .

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: Handling Dates Suggestions

2003-10-08 Thread Tore Aursand
On Wed, 08 Oct 2003 17:56:03 -0700, perl wrote:
> Can someone offers some recommendation into using dates?

Take a look at CPAN [1] for Date-related modules.  My personal favorite
has become Time::Piece, although all the Date::* modules should be looked
upon.

[1] http://www.cpan.org/>


-- 
Tore Aursand <[EMAIL PROTECTED]>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Request for advice/suggestions....

2008-07-23 Thread Richard.Copits
I'm very new with PERL and have been given a task of doing some maint.

on an existing really big PERL program. What I'd like to ask is if the
changes

I want to implement will work and ask for suggestions on how to make one

major change working with  subroutines.

 

The application makes use of a number of arrays that contain categories

and subcategories. What I'd like to do is to move these into a separate

file (extras.pl) and reference it with a "require". These structures
were

in the mainline program. Adding new categories involved editing the 

mainline code, so my thought was it would be easier and less trouble-

prone to put them in a separate file to which new ones could be added

easily. What I want to add to the external "required" file are these

objects. Can I do this pretty transparently and easily? Will I run into
any

serious problems by moving them to a separate file?

 




use vars qw(%config %category %paper %records);

 

%category = (

p01 => 'PAPER ITEMS GENERAL',

p02 => 'Diaries and Journals',

p03 => 'Indentures',

p04 => 'Letters',

p05 => 'Certificates',

p10 => 'Other Paper Items',

 

r01 => 'RECORDS GENERAL',

r02 => 'Birth and Death',

r03 => 'Marriage ',

r04 => 'Wills ',

r05 => 'Census',

r06 => 'Court and Probate',

r07 => 'Immigration and Ship Lists',

r08 => 'Military',

r09 => 'Maps',

r10 => 'Other Records',

);

 

%paper = (

p01 => 'PAPER ITEMS GENERAL',

p02 => 'Diaries and Journals',

p03 => 'Indentures',

p04 => 'Letters',

p05 => 'Certificates',

p10 => 'Other Paper Items',

);

 

%records = (

r01 => 'RECORDS GENERAL',

r02 => 'Birth and Death',

r03 => 'Marriage ',

r04 => 'Wills ',

r05 => 'Census',

r06 => 'Court and Probate',

r07 => 'Immigration and Ship Lists',

r08 => 'Military',

r09 => 'Maps',

r10 => 'Other Records',

);

 


--

 

Secondly, when additional categories are added, the program is coded
such

that a new subroutine has to be inserted dealing with that category. For
example,

there would be a subroutine added for "paper" and one for "records". In
each

subroutine there are only 3 "references" to the item. For example,  in
the  "paper"

subroutine there are only these 3 places where "paper stuff" is
mentioned. Sample

is below (with non-relevant code removed). So, if we had 10 categories
there

would be ten subroutines - one for each category - differing only in the
3 places

where the category topic is mentioned.  My question - is it possible to
create only

one "generic" subroutine that could have the topic name plugged in
rather than

having ten almost-alike subroutines?  If so, can you recommend a sample
code

snippet that I can model the procedure after? 

 

These subroutines are accessed by :

 

elsif ($form{'action'} eq 'paper') { &paper; } #Paper Items Category

elsif ($form{'action'} eq 'records') { &records; } #Records Category

 

 

sub paper {

&chkclose;

print "Paper Categories";

my $key;

foreach $key (sort keys %paper) {

}}

 

 

sub records {

&chkclose;

print "Records Categories";

my $key;

foreach $key (sort keys %records) {

}}

 

 

 Thanks for your suggestions, ideas, comments, etc. 



Portions of this message may be confidential under an exemption to Ohio's 
public records law or under a legal privilege. If you have received this 
message in error or due to an unauthorized transmission or interception, please 
delete all copies from your system without disclosing, copying, or transmitting 
this message.


encrypt, decrypt module suggestions

2001-10-03 Thread Jeff Loetel

I'm looking for a module where I can encrypt and decrypt
values. Obviously, the more secure the better. Most of
everything that I have seen is in the way of one way
hash digests. The main thing is I  have to be able to
get the values back out.

Suggestions appreciated.

jeffl


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Suggestions for Submitting to CPAN

2004-01-17 Thread Dan Anderson
I've read the tutorial on creating a Makefile.PL for a module I'm
submitting to CPAN, and I've applied for a PAUSE ID, but I was curious
if anyone whos been through the process before knows of any pit falls I
should be careful of, or any suggestions on how to make my life easier.

Thanks in advance,

Dan


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Re: Request for advice/suggestions....

2008-07-23 Thread Rob Dixon

[EMAIL PROTECTED] wrote:
>
> I'm very new with PERL and have been given a task of doing some maint. on an
> existing really big PERL program. What I'd like to ask is if the changes I
> want to implement will work and ask for suggestions on how to make one major
> change working with subroutines.
>  
> The application makes use of a number of arrays that contain categories and
> subcategories. What I'd like to do is to move these into a separate file
> (extras.pl) and reference it with a "require". These structures were in the
> mainline program. Adding new categories involved editing the mainline code,
> so my thought was it would be easier and less trouble- prone to put them in a
> separate file to which new ones could be added easily. What I want to add to
> the external "required" file are these objects. Can I do this pretty
> transparently and easily? Will I run into any serious problems by moving them
> to a separate file?
>  
> 
> use vars qw(%config %category %paper %records);
>  
> %category = (
> p01 => 'PAPER ITEMS GENERAL',
> p02 => 'Diaries and Journals',
> p03 => 'Indentures',
> p04 => 'Letters',
> p05 => 'Certificates',
> p10 => 'Other Paper Items',
>  
> r01 => 'RECORDS GENERAL',
> r02 => 'Birth and Death',
> r03 => 'Marriage ',
> r04 => 'Wills ',
> r05 => 'Census',
> r06 => 'Court and Probate',
> r07 => 'Immigration and Ship Lists',
> r08 => 'Military',
> r09 => 'Maps',
> r10 => 'Other Records',
> );
>  
> %paper = (
> p01 => 'PAPER ITEMS GENERAL',
> p02 => 'Diaries and Journals',
> p03 => 'Indentures',
> p04 => 'Letters',
> p05 => 'Certificates',
> p10 => 'Other Paper Items',
> );
>  
> %records = (
> r01 => 'RECORDS GENERAL',
> r02 => 'Birth and Death',
> r03 => 'Marriage ',
> r04 => 'Wills ',
> r05 => 'Census',
> r06 => 'Court and Probate',
> r07 => 'Immigration and Ship Lists',
> r08 => 'Military',
> r09 => 'Maps',
> r10 => 'Other Records',
> );
>  
> 
>  
> Secondly, when additional categories are added, the program is coded such 
> that a new subroutine has to be inserted dealing with that category. For 
> example, there would be a subroutine added for "paper" and one for "records".
> In each subroutine there are only 3 "references" to the item. For example,
> in the "paper" subroutine there are only these 3 places where "paper stuff"
> is mentioned. Sample is below (with non-relevant code removed). So, if we had
> 10 categories there would be ten subroutines - one for each category -
> differing only in the 3 places where the category topic is mentioned. My
> question - is it possible to create only one "generic" subroutine that could
> have the topic name plugged in rather than having ten almost-alike
> subroutines? If so, can you recommend a sample code snippet that I can model
> the procedure after?
>  
> These subroutines are accessed by :
>  
> elsif ($form{'action'} eq 'paper') { &paper; } #Paper Items Category
> elsif ($form{'action'} eq 'records') { &records; } #Records Category
>  
>  
> sub paper {
> &chkclose;
> print " face=Arial size=2>Paper Categories";
> my $key;
> foreach $key (sort keys %paper) {
> }}
>  
>  
> sub records {
> &chkclose;
> print " face=Arial size=2>Records Categories";
> my $key;
> foreach $key (sort keys %records) {
> }}

I recommend that you modularize this and write a Categories.pm file that defines
the data, and then access it with

  use Categories;

in your main code. It would be nice if you could make this a bit object-oriented
 and make the hashes private to the Categories module, with exported subroutines
that let the main code do what it wanted with them. But without seeing how your
program is structured I can't say whether that's feasible or not.

Your module would look like this. As it seemed that %category was just an
amalgamation of %paper and %records I've written it that way.




package Categories;

use strict;
use warnings;

require Exporter;
our @ISA = qw

RE: Request for advice/suggestions....

2008-07-23 Thread Richard.Copits
Outstanding! I need to think about this a bit but it looks exactly like
what
I want to do. Thank you for your suggestions and ideas!

-Original Message-
From: Rob Dixon [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, July 23, 2008 3:46 PM
To: beginners@perl.org
Cc: Copits Dick
Subject: Re: Request for advice/suggestions


[EMAIL PROTECTED] wrote:
>
> I'm very new with PERL and have been given a task of doing some maint.
on an
> existing really big PERL program. What I'd like to ask is if the
changes I
> want to implement will work and ask for suggestions on how to make one
major
> change working with subroutines.
>  
> The application makes use of a number of arrays that contain
categories and
> subcategories. What I'd like to do is to move these into a separate
file
> (extras.pl) and reference it with a "require". These structures were
in the
> mainline program. Adding new categories involved editing the mainline
code,
> so my thought was it would be easier and less trouble- prone to put
them in a
> separate file to which new ones could be added easily. What I want to
add to
> the external "required" file are these objects. Can I do this pretty
> transparently and easily? Will I run into any serious problems by
moving them
> to a separate file?
>  
>

> use vars qw(%config %category %paper %records);
>  
> %category = (
> p01 => 'PAPER ITEMS GENERAL',
> p02 => 'Diaries and Journals',
> p03 => 'Indentures',
> p04 => 'Letters',
> p05 => 'Certificates',
> p10 => 'Other Paper Items',
>  
> r01 => 'RECORDS GENERAL',
> r02 => 'Birth and Death',
> r03 => 'Marriage ',
> r04 => 'Wills ',
> r05 => 'Census',
> r06 => 'Court and Probate',
> r07 => 'Immigration and Ship Lists',
> r08 => 'Military',
> r09 => 'Maps',
> r10 => 'Other Records',
> );
>  
> %paper = (
> p01 => 'PAPER ITEMS GENERAL',
> p02 => 'Diaries and Journals',
> p03 => 'Indentures',
> p04 => 'Letters',
> p05 => 'Certificates',
> p10 => 'Other Paper Items',
> );
>  
> %records = (
> r01 => 'RECORDS GENERAL',
> r02 => 'Birth and Death',
> r03 => 'Marriage ',
> r04 => 'Wills ',
> r05 => 'Census',
> r06 => 'Court and Probate',
> r07 => 'Immigration and Ship Lists',
> r08 => 'Military',
> r09 => 'Maps',
> r10 => 'Other Records',
> );
>  
>

>  
> Secondly, when additional categories are added, the program is coded
such 
> that a new subroutine has to be inserted dealing with that category.
For 
> example, there would be a subroutine added for "paper" and one for
"records".
> In each subroutine there are only 3 "references" to the item. For
example,
> in the "paper" subroutine there are only these 3 places where "paper
stuff"
> is mentioned. Sample is below (with non-relevant code removed). So, if
we had
> 10 categories there would be ten subroutines - one for each category -
> differing only in the 3 places where the category topic is mentioned.
My
> question - is it possible to create only one "generic" subroutine that
could
> have the topic name plugged in rather than having ten almost-alike
> subroutines? If so, can you recommend a sample code snippet that I can
model
> the procedure after?
>  
> These subroutines are accessed by :
>  
> elsif ($form{'action'} eq 'paper') { &paper; } #Paper Items Category
> elsif ($form{'action'} eq 'records') { &records; } #Records Category
>  
>  
> sub paper {
> &chkclose;
> print " face=Arial size=2>Paper Categories";
> my $key;
> foreach $key (sort keys %paper) {
> }}
>  
>  
> sub records {
> &chkclose;
> print " face=Arial size=2>Records Categories";
> my $key;
> foreach $key (sort keys %records) {
> }}

I recommend that you modularize this and write a Categories.pm file that
defines
the data, and then access it with

  use Categories;

in your main code. It would be nice if you could make this a bit
object-oriented
 and make the hashes private to the Categories module, with exported
subroutines
that let the main code do what it wanted with them. But without seeing
how

RE: Request for advice/suggestions....

2008-07-24 Thread Stewart Anderson
> -Original Message-
> From: Rob Dixon [mailto:[EMAIL PROTECTED]
> Sent: 23 July 2008 20:46
> To: beginners@perl.org
> Cc: [EMAIL PROTECTED]
> Subject: Re: Request for advice/suggestions
> 
> 
> [EMAIL PROTECTED] wrote:
> >
> > I'm very new with PERL and have been given a task of doing some
maint.
> on an
> > existing really big PERL program. What I'd like to ask is if the
changes
> I
> > want to implement will work and ask for suggestions on how to make
one
> major
> > change working with subroutines.
> >
> > The application makes use of a number of arrays that contain
categories
> and
> > subcategories. What I'd like to do is to move these into a separate
file
> > (extras.pl) and reference it with a "require". These structures were
in
> the
> > mainline program. Adding new categories involved editing the
mainline
> code,
> > so my thought was it would be easier and less trouble- prone to put
them
> in a
> > separate file to which new ones could be added easily. What I want
to
> add to
> > the external "required" file are these objects. Can I do this pretty
> > transparently and easily? Will I run into any serious problems by
moving
> them
> > to a separate file?
> >
> >

> > use vars qw(%config %category %paper %records);
> >
> > %category = (
> > p01 => 'PAPER ITEMS GENERAL',
> > p02 => 'Diaries and Journals',
> > p03 => 'Indentures',
> > p04 => 'Letters',
> > p05 => 'Certificates',
> > p10 => 'Other Paper Items',
> >
> > r01 => 'RECORDS GENERAL',
> > r02 => 'Birth and Death',
> > r03 => 'Marriage ',
> > r04 => 'Wills ',
> > r05 => 'Census',
> > r06 => 'Court and Probate',
> > r07 => 'Immigration and Ship Lists',
> > r08 => 'Military',
> > r09 => 'Maps',
> > r10 => 'Other Records',
> > );
> >
> > %paper = (
> > p01 => 'PAPER ITEMS GENERAL',
> > p02 => 'Diaries and Journals',
> > p03 => 'Indentures',
> > p04 => 'Letters',
> > p05 => 'Certificates',
> > p10 => 'Other Paper Items',
> > );
> >
> > %records = (
> > r01 => 'RECORDS GENERAL',
> > r02 => 'Birth and Death',
> > r03 => 'Marriage ',
> > r04 => 'Wills ',
> > r05 => 'Census',
> > r06 => 'Court and Probate',
> > r07 => 'Immigration and Ship Lists',
> > r08 => 'Military',
> > r09 => 'Maps',
> > r10 => 'Other Records',
> > );
> >
> >

> >
> > Secondly, when additional categories are added, the program is coded
> such
> > that a new subroutine has to be inserted dealing with that category.
For
> > example, there would be a subroutine added for "paper" and one for
> "records".
> > In each subroutine there are only 3 "references" to the item. For
> example,
> > in the "paper" subroutine there are only these 3 places where "paper
> stuff"
> > is mentioned. Sample is below (with non-relevant code removed). So,
if
> we had
> > 10 categories there would be ten subroutines - one for each category
-
> > differing only in the 3 places where the category topic is
mentioned. My
> > question - is it possible to create only one "generic" subroutine
that
> could
> > have the topic name plugged in rather than having ten almost-alike
> > subroutines? If so, can you recommend a sample code snippet that I
can
> model
> > the procedure after?
> >
> > These subroutines are accessed by :
> >
> > elsif ($form{'action'} eq 'paper') { &paper; } #Paper Items Category
> > elsif ($form{'action'} eq 'records') { &records; } #Records Category
> >
> >
> > sub paper {
> > &chkclose;
> > print " > face=Arial size=2>Paper Categories";
> > my $key;
> > foreach $key (sort keys %paper) {
> > }}
> >
> >
> > sub records {
> > &chkclose;
> > print " > face=Arial size=2>Records Categories";
> > 

Re: encrypt, decrypt module suggestions

2001-10-03 Thread Elaine -HFB- Ashton

Jeff Loetel [[EMAIL PROTECTED]] quoth:
*>
*>Suggestions appreciated.

http://www.perl.com/pub/a/2001/09/26/crypto1.html

e.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: encrypt, decrypt module suggestions

2001-10-03 Thread Rex Arul

Use Crypt::RC4 module, to encrypt and decrypt values. It uses the RC4
Symmetric encryption which is fairly robust. It depends on a symmetric key
which you will use for encryption as well as decryption.  You can download
the latest Crypt::RC4 module through PPM. (Activestate Perl).

http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/Packages



- Original Message -
From: "Jeff Loetel" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 7:38 PM
Subject: encrypt, decrypt module suggestions


> I'm looking for a module where I can encrypt and decrypt
> values. Obviously, the more secure the better. Most of
> everything that I have seen is in the way of one way
> hash digests. The main thing is I  have to be able to
> get the values back out.
>
> Suggestions appreciated.
>
> jeffl
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: encrypt, decrypt module suggestions

2001-10-03 Thread jeffl

Rex, Elaine thanks. I read you're suggestion Elaine, informative, 
thanks. Rex, thanks I think I'll try the Crypt::RC4 module.

jeffl
On 2001.10.03 20:49 Rex Arul wrote:
> Use Crypt::RC4 module, to encrypt and decrypt values. It uses the RC4
> Symmetric encryption which is fairly robust. It depends on a symmetric
> key
> which you will use for encryption as well as decryption.  You can
> download
> the latest Crypt::RC4 module through PPM. (Activestate Perl).
> 
> http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/Packages
> 
> 
> 
> - Original Message -
> From: "Jeff Loetel" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, October 03, 2001 7:38 PM
> Subject: encrypt, decrypt module suggestions
> 
> 
> > I'm looking for a module where I can encrypt and decrypt
> > values. Obviously, the more secure the better. Most of
> > everything that I have seen is in the way of one way
> > hash digests. The main thing is I  have to be able to
> > get the values back out.
> >
> > Suggestions appreciated.
> >
> > jeffl
> >
> >
> > --
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> 
> 
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Suggestions For Flexible Text Output

2001-12-07 Thread Ken Hammer

Hi all,

 I have a script that gathers information from
system commands and log files. There is a 
potential for 5 different command line switches
to be used, that will determine the 
amount and types of information returned.

 Basicaly, which ever command line option the user
uses, there will be a matching Heading and the actual output
to the command.

 I'm trying to use the Format/write statements 
to achieve a *unified* look. However, since there
is several possible output possibilities based on 
the command line options, is there a way I can use
1 or 2 Format statements for all the different options?
 
 Is there a module out there that can help? I'm having
dificulty getting Format::Text to do what I want.

 
-- 
Ken Hammer
Strategic Projects And Planning
University Of Michigan

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: Suggestions for Submitting to CPAN

2004-01-17 Thread Wiggins d'Anconia
Dan Anderson wrote:

I've read the tutorial on creating a Makefile.PL for a module I'm
submitting to CPAN, and I've applied for a PAUSE ID, but I was curious
if anyone whos been through the process before knows of any pit falls I
should be careful of, or any suggestions on how to make my life easier.
Thanks in advance,

Dan


Have you looked at,

perldoc perlnewmod

There is also a good book on the subject,

http://www.apress.com/book/bookDisplay.html?bID=14

HTH,

http://danconia.org

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>



Re: Suggestions for Submitting to CPAN

2004-01-17 Thread Randy W. Sims
On 1/17/2004 2:55 PM, Wiggins d'Anconia wrote:

Dan Anderson wrote:

I've read the tutorial on creating a Makefile.PL for a module I'm
submitting to CPAN, and I've applied for a PAUSE ID, but I was curious
if anyone whos been through the process before knows of any pit falls I
should be careful of, or any suggestions on how to make my life easier.
Thanks in advance,

Dan


Have you looked at,

perldoc perlnewmod
and perldoc perlmodstyle

There is also a good book on the subject,

http://www.apress.com/book/bookDisplay.html?bID=14


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>



Re: Suggestions for Submitting to CPAN

2004-01-18 Thread Tassilo von Parseval
On Sat, Jan 17, 2004 at 02:32:25PM -0500 Dan Anderson wrote:
> I've read the tutorial on creating a Makefile.PL for a module I'm
> submitting to CPAN, and I've applied for a PAUSE ID, but I was curious
> if anyone whos been through the process before knows of any pit falls I
> should be careful of, or any suggestions on how to make my life easier.

A thing you should never do is creating the structure of a module
yourself. Let perl do that for you by doing

h2xs -A -X -n Module::Name

This will create the outline of your module (including Makefile.PL) and
you just have to make the appropriate changes. Also, don't forget to put
the tests in the t/ directory.

Creating the tarball should ultimately be done with

make dist

Thus you can be sure not to violate any CPAN conventions.

It's also a good idea to consider back to which version of perl your
module should run. If you pass '-b 5.5.3' to h2xs the module draft only
uses features that can be understood by versions as old as 5.00503. In
my experience, there is rarely the need to use bleeding-edge features in
a module.

Tassilo
-- 
$_=q#",}])!JAPH!qq(tsuJ[{@"tnirp}3..0}_$;//::niam/s~=)]3[))_$-3(rellac(=_$({
pam{rekcahbus})(rekcah{lrePbus})(lreP{rehtonabus})!JAPH!qq(rehtona{tsuJbus#;
$_=reverse,s+(?<=sub).+q#q!'"qq.\t$&."'!#+sexisexiixesixeseg;y~\n~~;eval


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Days of week - report parsing - Suggestions

2003-07-09 Thread Paul Kraus
here is the problem.

I am parsing sales reports that are printed 2 or more times each day.
The 1st report of everyday is actually the last report of the previous
day.

I have written a program that look at the modified time of the reports
then if the reports date is before 9am then the report is set to the
previous day.

To ease my work when having to go through these reports at a later date
I have the reports renamed based on date and then incrementally ordered
for that date. Example: 7.9.2003_(1)_(64836).txt Reads date - report
number time when report was run. You may recognize this from a bunch of
posts yesterday ;)

Now I have this all set so that it work great!! Thanks to everyone's
help on the list. However when I do the check to see if the report is
from the previous day the system does not take into account non-work
days. For instance if its Mondays morning report (which is actually
posted to Fridays sales) the report date would be set to Sunday.

I am trying to figure out a good way to account for this. The only thing
I can think of would be to great hashes for each month. Then have hash
keys for the day after days off. So the system would check the hash key
if exits it would set the day to the day defined in the hash.

Sample (Fridays date is the 11th. Mondays date is 14th.)
I would have a hash called july{14}=11;
If report is for previous day
if ($july{reports modify date})
report date = $july{reports modify day}
else
report date -= 1
endif


This seem VERY CUMBERSOME :) any suggestions or am I on the right track
with this.

Paul


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



my first useful program...any corrections/suggestions?

2012-10-31 Thread Thanos Zygouris
I made a small program to display a X::Osd bar displaying my volume
percentage (on GNU/Linux box). It works, but I'd like to have any suggestions or
corrections about it (i'm not confident about my skills i suppose).

So, here is how it works:
1) Have a named pipe defined at $OSD_VOLUME environmental variable.
2) Run the program in the background.
3) When echoing 'up', 'down' or 'toggle' in the named pipe, it raises,
   lowers or toggles mute state using amixer program.

I have the following questions:
1) Is the code OK? (I mean is there anything I should avoid or add?)
2) Is there a better solution to make a perl program and a shell script
   and/or window manager communicate? (I really didn't love that named
   pipe solution, but I didn't know of anything else)

Enough words, here is the code:

#!/usr/bin/perl

use strict;
use warnings;
# extra modules
use X::Osd;

# create osd bar (two output lines)
my $osd = X::Osd->new(2);
# osd bar properties
$osd->set_font("-*-terminus-bold-*-*-*-18-*-*-*-*-*-*-*");
$osd->set_shadow_offset(1);
$osd->set_pos(XOSD_bottom);
$osd->set_align(XOSD_center);
$osd->set_horizontal_offset(0);
$osd->set_vertical_offset(30);
$osd->set_timeout(5);

# locate (and if missing create) named pipe
my $fifo_file = (defined $ENV{OSD_VOLUME}) ? $ENV{OSD_VOLUME} : 
glob("~/.osd-volume.fifo");
unless (-p $fifo_file) {
# delete non-named pipe file (risky)
unlink $fifo_file or die "cannot remove $fifo_file: $!";
# create the named pipe
require POSIX;
POSIX::mkfifo($fifo_file, 0600) or die "cannot mkfifo $fifo_file: $!";
}

# open named pipe
open(FIFO, "+<", $fifo_file) or die "cannot open $fifo_file: $!";
# constantly read from it
my $vol;
while (chomp(my $fifo_line = )) {
if ($fifo_line eq 'up') {
$vol = '3%+';
} elsif ($fifo_line eq 'down') {
$vol = '3%-';
} elsif ($fifo_line eq 'toggle') {
$vol = 'toggle';
} else {
die "invalid input: $fifo_line";
}
# set new volume value and read the output
my $amixer = `amixer sset Master,0 $vol` or die "error: $!";
# get new volume value
$vol = $1 if ($amixer =~ m/(\d{1,3})(?:%)/);
# change output color if volume is muted
if ($amixer =~ m/\[off\]/) {
$osd->set_colour("#DD");
} else {
$osd->set_colour("#1E90FF");
}
# print volume bar
$osd->string(0, 'Master Volume:'.$vol.'%');
$osd->percentage(1, $vol);
}
# close pipe and exit (with error)
# (impossible to get here)
close(FIFO);
exit(0);


-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




module install on HPUX 11.11 ....any suggestions?

2006-06-13 Thread Smith, Derek
I know I will probably need another compiler but wanted to make sure.  I
changed the make file to point to gcc, g++, cpp and c++ and I am still
getting errors. Here are my errors using /usr/bin/cc

 

[EMAIL PROTECTED] make

cp Size.pm blib/lib/Term/Size.pm

AutoSplitting blib/lib/Term/Size.pm (blib/lib/auto/Term/Size)

   /usr/bin/perl /opt/perl/lib/5.8.2/ExtUtils/xsubpp  -typemap
/opt/perl/li

b/5.8.2/ExtUtils/typemap  Size.xs > Size.xsc && mv Size.xsc Size.c

   cc -c-D_POSIX_C_SOURCE=199506L -D_REENTRANT -Ae
-D_HPUX_SOURCE -Wl,+

vnocompatwarnings -DNO_HASH_SEED -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -fas

t +Onolimit +Opromote_indirect_calls +DAportable +DS2.0
-DVERSION=\"0.2\"  -D

XS_VERSION=\"0.2\" +Z
"-I/opt/perl/lib/5.8.2/PA-RISC1.1-thread-multi/CORE"   Siz

e.c

(Bundled) cc: warning 480: The -A option is available only with the
C/ANSI C pro

duct; ignored.

(Bundled) cc: warning 422: Unknown option "f" ignored.

(Bundled) cc: warning 480: The +Onolimit option is available only with
the C/ANS

I C product; ignored.

(Bundled) cc: warning 480: The +Opromote_indirect_calls option is
available only

with the C/ANSI C product; ignored.

(Bundled) cc: warning 480: The +Z option is available only with the
C/ANSI C product; ignored.

cpp: "/opt/perl/lib/5.8.2/PA-RISC1.1-thread-multi/CORE/perlio.h", line
108: erro

r 4065: Recursion in macro "PerlIO".

*** Error exit code 1

 

Stop.

 

Thank you

Derek

 

 

 

Derek Bellner Smith

Unix Systems Engineer

Cardinal Health Dublin, Ohio

  

 


Cardinal Health -- Working together. For life. (sm)
_

This message is for the designated recipient only and may contain privileged, 
proprietary, or otherwise private information. If you have received it in 
error, please notify the sender immediately and delete the original. Any other 
use of the email by you is prohibited.

Dansk - Deutsch - Espanol - Francais - Italiano - Japanese - Nederlands - Norsk 
- Portuguese - Svenska: www.cardinalhealth.com/legal/email


RE: Days of week - report parsing - Suggestions

2003-07-09 Thread Wagner, David --- Senior Programmer Analyst --- WGO
Paul Kraus wrote:
> here is the problem.
> 
> I am parsing sales reports that are printed 2 or more times each day.
> The 1st report of everyday is actually the last report of the previous
> day.
> 
> I have written a program that look at the modified time of the reports
> then if the reports date is before 9am then the report is set to the
> previous day.
> 
> To ease my work when having to go through these reports at a later
> date I have the reports renamed based on date and then incrementally
> ordered for that date. Example: 7.9.2003_(1)_(64836).txt Reads date -
> report number time when report was run. You may recognize this from a
> bunch of posts yesterday ;)
> 
> Now I have this all set so that it work great!! Thanks to everyone's
> help on the list. However when I do the check to see if the report is
> from the previous day the system does not take into account non-work
> days. For instance if its Mondays morning report (which is actually
> posted to Fridays sales) the report date would be set to Sunday.
> 
> I am trying to figure out a good way to account for this. The only
> thing I can think of would be to great hashes for each month. Then
> have hash keys for the day after days off. So the system would check
> the hash key if exits it would set the day to the day defined in the
> hash. 
> 
> Sample (Fridays date is the 11th. Mondays date is 14th.)
> I would have a hash called july{14}=11;
> If report is for previous day
>   if ($july{reports modify date})
>   report date = $july{reports modify day}
>   else
>   report date -= 1
>   endif
> 
> 
> This seem VERY CUMBERSOME :) any suggestions or am I on the right
> track with this.
> 
> Paul

Just do a day check from timelocal which has element 6 for day of week.  If 
Mon then day of week equal to 1, so need to go back 3 days.  Make a little routine to 
determine date to use and then flow everything through that sub.  What I have is 
get_time( $TimeInfo ) for myself which is a reference to array, so $TimeInfo->[6] == 1 
would setup a diff variable to 3 and another call usually  like get_time( $MyPullDate 
) and with the diff at 3 then $MyPulDate has info for Prev Friday.

Just one approach, but pretty simplistic and no extra modules really needed.

Wags ;)


**
This message contains information that is confidential
and proprietary to FedEx Freight or its affiliates.
It is intended only for the recipient named and for
the express purpose(s) described therein.
Any other use is prohibited.



--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Advice and suggestions needed for difftree script

2002-04-25 Thread Nikola Janceski

***Okay this is the situation:

I have a main directory "tree" which has similar directories "branch" from
the trunk but links back to other branches or the main tree.

I want to know what files are different between two branches or a branch and
the tree.

***What I have so far:

I have written a perlscript to do this already, but I want to make it
"smarter" and faster.
I am using File::Find to recurse the first tree.

Foreach file:
stat file for device number, and inode number ($dev1, $inode1)
it checks if a file by the same name/path exists in the second tree
(using -f $file)
  If it exists... 
stat second file (using stat _ since I did a -f on it already) for
device number, and inode number ($dev2, $inode2)
if $dev1 != $dev2 and $inode1 != $inode2
do a qx/diff -h -w $file1 and $file2/ and if something is
returned  there is a difference.
else one or both files are linked to the same file so no difference.
 If it doesn't exist...
oh well store missing files in an array print later.

Recurse second tree just looking for files that are missing from the first
tree.

***Questions:
Good algorithm? or is there something better? you can just correct above.
Is there a way just to look for diff (ignoring whitespace) in the file
better than using qx/diff -w -h/?

Nikola Janceski

I feel like an outsider... on the inside.
-- Nicky J. from da' Bronx




The views and opinions expressed in this email message are the sender's
own, and do not necessarily represent the views and opinions of Summit
Systems Inc.


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: my first useful program...any corrections/suggestions?

2012-10-31 Thread Shlomi Fish
Hi Thanos,

some comments about your code.

On Wed, 31 Oct 2012 13:27:05 +0200
Thanos Zygouris  wrote:

> I made a small program to display a X::Osd bar displaying my volume
> percentage (on GNU/Linux box). It works, but I'd like to have any suggestions
> or corrections about it (i'm not confident about my skills i suppose).
> 
> So, here is how it works:
> 1) Have a named pipe defined at $OSD_VOLUME environmental variable.
> 2) Run the program in the background.
> 3) When echoing 'up', 'down' or 'toggle' in the named pipe, it raises,
>lowers or toggles mute state using amixer program.
> 
> I have the following questions:
> 1) Is the code OK? (I mean is there anything I should avoid or add?)
> 2) Is there a better solution to make a perl program and a shell script
>and/or window manager communicate? (I really didn't love that named
>pipe solution, but I didn't know of anything else)
> 
> Enough words, here is the code:
> 
> #!/usr/bin/perl
> 
> use strict;
> use warnings;

strict and warnings are a good idea. Well done.

> # extra modules
> use X::Osd;

The comment is not really needed. It doesn't hurt much though.

> 
> # create osd bar (two output lines)
> my $osd = X::Osd->new(2);
> # osd bar properties
> $osd->set_font("-*-terminus-bold-*-*-*-18-*-*-*-*-*-*-*");
> $osd->set_shadow_offset(1);
> $osd->set_pos(XOSD_bottom);
> $osd->set_align(XOSD_center);
> $osd->set_horizontal_offset(0);
> $osd->set_vertical_offset(30);
> $osd->set_timeout(5);
> 
> # locate (and if missing create) named pipe
> my $fifo_file = (defined $ENV{OSD_VOLUME}) ? $ENV{OSD_VOLUME} :
> glob("~/.osd-volume.fifo"); 

Better do exists instead of defined here, and if you're on perl-5.10.x you
might wish to use the "//" (defined-or) operator. The glob can be replaced by
$ENV{HOME}

> unless (-p $fifo_file) {
> # delete non-named pipe file (risky)
> unlink $fifo_file or die "cannot remove $fifo_file: $!";
> # create the named pipe
> require POSIX;
> POSIX::mkfifo($fifo_file, 0600) or die "cannot mkfifo $fifo_file: $!";
> }
> 
> # open named pipe
> open(FIFO, "+<", $fifo_file) or die "cannot open $fifo_file: $!";

You should use lexical file handles instead of typeglobs.

> # constantly read from it
> my $vol;
> while (chomp(my $fifo_line = )) {
> if ($fifo_line eq 'up') {
> $vol = '3%+';
> } elsif ($fifo_line eq 'down') {
> $vol = '3%-';
> } elsif ($fifo_line eq 'toggle') {
> $vol = 'toggle';
> } else {
> die "invalid input: $fifo_line";
> }

I would do that using a dispatch table.

> # set new volume value and read the output
> my $amixer = `amixer sset Master,0 $vol` or die "error: $!";

You should put $vol in a more inner scope.

With `...` you risk shell-variable injection - maybe look at IPC::Run.

> # get new volume value
> $vol = $1 if ($amixer =~ m/(\d{1,3})(?:%)/);
> # change output color if volume is muted
> if ($amixer =~ m/\[off\]/) {

This can be done using perldoc -f index.

> $osd->set_colour("#DD");
> } else {
> $osd->set_colour("#1E90FF");
> }
> # print volume bar
> $osd->string(0, 'Master Volume:'.$vol.'%');
> $osd->percentage(1, $vol);
> }
> # close pipe and exit (with error)
> # (impossible to get here)
> close(FIFO);
> exit(0);
> 
> 

Regards,

Shlomi Fish

-- 
-
Shlomi Fish   http://www.shlomifish.org/
Escape from GNU Autohell - http://www.shlomifish.org/open-source/anti/autohell/

XSLT is the number one cause of programmers’ suicides since Visual Basic 1.0.

Please reply to list if it's a mailing list post - http://shlom.in/reply .

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: my first useful program...any corrections/suggestions?

2012-10-31 Thread Brandon McCaig
Hello:

I'm not familiar with X::Osd so I'm just assuming that is all
happy. :)

/pedantic on

On Wed, Oct 31, 2012 at 01:27:05PM +0200, Thanos Zygouris wrote:
> # delete non-named pipe file (risky)
> unlink $fifo_file or die "cannot remove $fifo_file: $!";

You might as well just die instead of deleting an existing file.
I would consider it user error for an existing file to not be a
fifo, which means that your program should just report it and
refuse to function. It is then possible for the user to decide
what to do.

unless(-p $fifo_file) {
if(-e $fifo_file) {
die "Fatal: '$fifo_file' is not a fifo.";
}
# ...
}

> if ($fifo_line eq 'up') {
> $vol = '3%+';
> } elsif ($fifo_line eq 'down') {
> $vol = '3%-';
> } elsif ($fifo_line eq 'toggle') {
> $vol = 'toggle';
> } else {
> die "invalid input: $fifo_line";
> }

It seems strange to die here. You might want to log the error to
a file instead. You probably don't want your background process
to die because of an invalid request from an external program. :)
It can just do nothing instead.

else {
# Optionally log somewhere...
next;
}

> $vol = $1 if ($amixer =~ m/(\d{1,3})(?:%)/);

As Shlomi Fish pointed out, using an outer scope for $vol and
conditionally setting it here is unnecessary. Also, it's
unnecessary to use m// with //. That's a personal preference, but
some might find that it clutters the code. It also seems that a
cluster group '(?:pattern)' is unnecessary around the % symbol.
Also I note that you're fetching the volume here, but not using
it until after the next if...else. I'd probably rearrange the
code to keep it closer to where it's needed. Also, I believe that
\d can match much more than [0-9]. You might prefer to use [0-9]
instead, assuming that is what you meant.

> # change output color if volume is muted
> if ($amixer =~ m/\[off\]/) {
> $osd->set_colour("#DD");
> } else {
> $osd->set_colour("#1E90FF");
> }

I see the two calls to X::Osd::set_colour as redundant. I'd
probably normalize them into a single call with a variable
colour.

> # print volume bar
> $osd->string(0, 'Master Volume:'.$vol.'%');
> $osd->percentage(1, $vol);

It seems to me that there's no point to updating the string or
percentage if the volume hasn't been updated. I might write that
like this:

my $colour = $amixer =~ /\[off\]/ ? '#DD' : '#1E90FF';

$osd->set_colour($colour);

my ($vol) = $amixer =~ /([0-9]{1,3})%/;

if(defined $vol)
{
$osd->string(0, "Master Volume: ${vol}%");
$osd->percentage(1, $vol);
}

That's my two cents. :)

Regards,


-- 
Brandon McCaig  
Castopulence Software 
Blog 
perl -E '$_=q{V zrna gur orfg jvgu jung V fnl. }.
q{Vg qbrfa'\''g nyjnlf fbhaq gung jnl.};
tr/A-Ma-mN-Zn-z/N-Zn-zA-Ma-m/;say'



signature.asc
Description: Digital signature


Re: my first useful program...any corrections/suggestions?

2012-11-01 Thread Thanos Zygouris
Thank you both for your suggestions.

@Shlomi: It seems that i'm completely unable to implement dispatch tables here
(but i now know what they are, hope to use them in the near future), so i used
the given-when approach...it seemed better than endless if-elsif's.

@Brandon: I'll stick with the m//, mostly because it reminds me that i can use
any delimiter instead of the slashes. I hope to get more experience tho, and
get rid of it. Also, i couldn't find any reference that \d in regex is
different from [0-9] (or [:digit:]), but i'm interested for more information
about it.

@both: Thanks again for looking into my code. You helped me learn a lot more
(and in less time) than try to figure them out myself. I tried to use most
of your suggestions...hope I've done it well enough.

So, here is the new code (i'm pretty happy with how it became):

#!/usr/bin/perl

use strict;
use warnings FATAL => qw( uninitialized );
use v5.16;

use X::Osd;
use IPC::Cmd qw( can_run run );

# check if amixer exists and get its path
my $amixer_path = can_run('amixer') 
or die 'amixer is not available';

# create osd bar (two output lines)
my $osd = X::Osd->new(2);
# osd bar properties
$osd->set_font("-*-terminus-bold-*-*-*-18-*-*-*-*-*-*-*");
$osd->set_shadow_offset(1);
$osd->set_pos(XOSD_bottom);
$osd->set_align(XOSD_center);
$osd->set_horizontal_offset(0);
$osd->set_vertical_offset(30);
$osd->set_timeout(5);

# locate (and if missing create) named pipe
my $fifo_file = $ENV{OSD_VOLUME} // "$ENV{HOME}/.osd-volume.fifo";
unless (-p $fifo_file) {
# if anyother filetype is there, just die
if (-e $fifo_file) {
die "$fifo_file: not a named pipe";
}
else {
# create the named pipe
require POSIX;
POSIX::mkfifo( $fifo_file, 0600 )
or die "cannot mkfifo $fifo_file: $!";
}
}

# open named pipe
open( my $fifo_fh, "+<", $fifo_file ) 
or die "cannot open $fifo_file: $!";

my $amixer_vol;

# constantly read from it
FIFO_INPUT:
while (chomp( my $fifo_input = <$fifo_fh> )) {
given ($fifo_input) {
when ('up') { $amixer_vol = '3%+'; }
when ('down')   { $amixer_vol = '3%-'; }
when ('toggle') { $amixer_vol = 'toggle'; }
when ('exit')   { last FIFO_INPUT; }
default {
warn "$fifo_input: invalid input";
next FIFO_INPUT;
}
}

# set new volume value and read the output
my $amixer_cmd = "$amixer_path sset Master,0 $amixer_vol";
my $amixer;
run(
command => $amixer_cmd,
verbose => 0,
buffer  => \$amixer,
);

# red output color if sound mutes, blue otherwise
my $colour = ( index($amixer, '[off]') != -1 ) ? '#DD' : '#1E90FF';
$osd->set_colour($colour);

# get new volume value and print osd bar
if (my ($volume) = $amixer =~ m/(\d{1,3})%/ ) {
$osd->string(0, "Master Volume:${volume}%");
$osd->percentage(1, $volume);
}
}

# close pipe before exit
close($fifo_fh);
exit(0);

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: my first useful program...any corrections/suggestions?

2012-11-02 Thread Jim Gibson

On Nov 1, 2012, at 6:00 PM, Thanos Zygouris wrote:

> @Brandon: I'll stick with the m//, mostly because it reminds me that i can use
> any delimiter instead of the slashes. I hope to get more experience tho, and
> get rid of it. Also, i couldn't find any reference that \d in regex is
> different from [0-9] (or [:digit:]), but i'm interested for more information
> about it.

You don't have to worry about the difference between \d and [0-9] unless you 
are dealing with non-Ascii characters. For Ascii, they are the same. For 
non-Ascii (e.g., UTF), \d will match additional numeric characters. Whether or 
not that is desirable depends upon your needs and expectations. As I never deal 
with non-Ascii characters, I can't make any recommendations on using or not 
using \d in those situations.


--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: my first useful program...any corrections/suggestions?

2012-11-02 Thread Brandon McCaig
On Fri, Nov 02, 2012 at 03:00:08AM +0200, Thanos Zygouris wrote:
> Also, i couldn't find any reference that \d in regex is
> different from [0-9] (or [:digit:]), but i'm interested for
> more information about it.

I wouldn't have found it either if I didn't know to look for it.
I guess I have this mailing list to thank for that. :) See
'Digits' in `perldoc perlrecharclass'. :) I guess you can
alternatively use \d with /a, but [0-9] isn't many more
characters and should always work whereas /a might affect other
code (and it also requires the reader to know what it does).

> So, here is the new code (i'm pretty happy with how it became):

Looks good to me. The only part that I question is this:

> my $amixer_cmd = "$amixer_path sset Master,0 $amixer_vol";
> my $amixer;
> run(
> command => $amixer_cmd,
> verbose => 0,
> buffer  => \$amixer,
> );

It seems that IPC::Cmd::run can accept an array reference for the
command so perhaps that would be better.

my $amixer_cmd = [$amixer_path, 'sset', 'Master,0', $amixer_vol];

In this case $amixer_vol is currently trusted though so maybe I'm
just being paranoid. :) Just be careful not to let the user
directly input that and make sure that you are careful about
shell meta characters.

Regards,


-- 
Brandon McCaig  
Castopulence Software 
Blog 
perl -E '$_=q{V zrna gur orfg jvgu jung V fnl. }.
q{Vg qbrfa'\''g nyjnlf fbhaq gung jnl.};
tr/A-Ma-mN-Zn-z/N-Zn-zA-Ma-m/;say'



signature.asc
Description: Digital signature


RE: Advice and suggestions needed for difftree script

2002-04-25 Thread Nikola Janceski

Oops...
>   if $dev1 != $dev2 and $inode1 != $inode2
should be:
if not $dev1 == $dev2 && $inode1 == $inode2

> -Original Message-
> From: Nikola Janceski [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, April 25, 2002 10:33 AM
> To: Beginners (E-mail)
> Subject: Advice and suggestions needed for difftree script
> 
> 
> ***Okay this is the situation:
> 
> I have a main directory "tree" which has similar directories 
> "branch" from
> the trunk but links back to other branches or the main tree.
> 
> I want to know what files are different between two branches 
> or a branch and
> the tree.
> 
> ***What I have so far:
> 
> I have written a perlscript to do this already, but I want to make it
> "smarter" and faster.
> I am using File::Find to recurse the first tree.
> 
> Foreach file:
>   stat file for device number, and inode number ($dev1, $inode1)
>   it checks if a file by the same name/path exists in the 
> second tree
> (using -f $file)
>   If it exists... 
>   stat second file (using stat _ since I did a -f on it 
> already) for
> device number, and inode number ($dev2, $inode2)
>   if $dev1 != $dev2 and $inode1 != $inode2
>   do a qx/diff -h -w $file1 and $file2/ and if 
> something is
> returned  there is a difference.
>   else one or both files are linked to the same file so 
> no difference.
>  If it doesn't exist...
>   oh well store missing files in an array print later.
> 
> Recurse second tree just looking for files that are missing 
> from the first
> tree.
> 
> ***Questions:
> Good algorithm? or is there something better? you can just 
> correct above.
> Is there a way just to look for diff (ignoring whitespace) in the file
> better than using qx/diff -w -h/?
> 
> Nikola Janceski
> 
> I feel like an outsider... on the inside.
> -- Nicky J. from da' Bronx
> 
> 
> --
> --
> 
> The views and opinions expressed in this email message are 
> the sender's
> own, and do not necessarily represent the views and opinions of Summit
> Systems Inc.
> 
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 



The views and opinions expressed in this email message are the sender's
own, and do not necessarily represent the views and opinions of Summit
Systems Inc.


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




nice low cost ISP with support for mod_perl, any suggestions

2005-09-05 Thread Adriano Ferreira
I am on the verge of trying to deploy a small web application for
small business. I would like to see it working  preferably under
mod_perl. Does anyone has suggestions about possible providers with a
good compromise between service quality and cost? As it is directed to
small business, it won't be very demanding on bandwidth or storage and
cannot be expensive.

Regards,
Adriano.

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Any Suggestions for Programmer Needing To Know Perl by Tomorrow?

2003-09-16 Thread Dan Anderson
My local pointy haired boss decided I should learn Perl over the weekend
-- specifically to interact with databases and use in CGI programming. 
With the job market being what it is I said "Sure" and picked up
O'Reilly's "Programming Perl".  After a lot of reading I think I
understand the basic structure of the language pretty well, and even can
write some nifty (but perfectly useless) programs.

My question is: when I go in tomorrow and start out is there anything I
should know?  Any suggestions, comments, or general warnings from more
experienced Perl hackers as to what to do and what not to do? 

Much thanks in advance,

-Dan


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: nice low cost ISP with support for mod_perl, any suggestions

2005-09-06 Thread Wiggins d'Anconia
Adriano Ferreira wrote:
> I am on the verge of trying to deploy a small web application for
> small business. I would like to see it working  preferably under
> mod_perl. Does anyone has suggestions about possible providers with a
> good compromise between service quality and cost? As it is directed to
> small business, it won't be very demanding on bandwidth or storage and
> cannot be expensive.
> 
> Regards,
> Adriano.
> 

I have come to prefer ISPs that provide VPS (Virtual Private Servers)
accounts. This gives you far greater control over the whole
installation, essentially giving you root access. In most cases you can
install your own software and have complete control over the Apache
config.  Right now I use Westhost (http://www.westhost.net) (I am not an
employee, rep, etc. but WH is the first low cost ISP I have actually
been happy with), but there are more and more springing up. There is
also an open source VPS that some use, Westhost does not, so I might
look at one of them soon.

Good luck,

http://danconia.org

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Suggestions - printing to ZEBRA credit card printer attached to Win7 PC

2014-09-16 Thread Gary Stainburn
I've got a ZEBRA ZXP Series 1 credit card printer attached to a Win7 PC.
By using Word and creating a paper size of 84mm by 54mm I can printer on a 
card successfully.

The cards we will be using are pre-printed with logo's etc. but I need to 
print a person's name and reference number across the botom of it.

The data is being generated by my LAPP based system. I'm looking at options as 
to how I can implement a system for printing the cards. As I see it, I have a 
number of options.

1) mail-merge using Word. 
Generate a CSV file via PHP for download.
Manual intervention required to download the file and run the mail-merge, but 
simple and easy to set up.

2) Have a process run on my LAPP server to create the document and print using 
a normal windows share.

3) Have a daemon running on the Win7 PC accepting instructions via the network 
and printing the cards. This then goes back to the earlier thread of which 
PERL to use.

4) Any other method you can suggest.

Obviously, options 2 and 3 are the ones I'd prefer. I've Googled "perl Windows 
print" and all I get are various postings, many of them over 10 years old on 
how to print text to PRN or a windows share.

There are posts about generating HTML/CSS and using rundll32 to print it. 
Google on "windows html css print" doesn't give much help. Does anyone know 
how I would be able to get it to print to 84CMx54CM page?

If I don't go down the HTML/CSS route, what other options are available for 
producing the document suitable for sending to the printer.

Going back 20 years to when I used to write in Borland Delphi there was a 
component for creating printer documents and adding contents. Are there 
similar PERL modules? What are people's preferences?

-- 
Gary Stainburn

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: Any Suggestions for Programmer Needing To Know Perl by Tomorrow?

2003-09-16 Thread awards
Hi,

You mentionned CGI do you need to know perl for Web programming?

If so I suggest two kind of books one to learn PERL and another to integrate
perl in website.



"Dan Anderson" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> My local pointy haired boss decided I should learn Perl over the weekend
> -- specifically to interact with databases and use in CGI programming.
> With the job market being what it is I said "Sure" and picked up
> O'Reilly's "Programming Perl".  After a lot of reading I think I
> understand the basic structure of the language pretty well, and even can
> write some nifty (but perfectly useless) programs.
>
> My question is: when I go in tomorrow and start out is there anything I
> should know?  Any suggestions, comments, or general warnings from more
> experienced Perl hackers as to what to do and what not to do?
>
> Much thanks in advance,
>
> -Dan
>



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Any Suggestions for Programmer Needing To Know Perl by Tomorrow?

2003-09-16 Thread Jenda Krynicky
From: Dan Anderson <[EMAIL PROTECTED]>
> My local pointy haired boss decided I should learn Perl over the
> weekend -- specifically to interact with databases and use in CGI
> programming. With the job market being what it is I said "Sure" and
> picked up O'Reilly's "Programming Perl".  After a lot of reading I
> think I understand the basic structure of the language pretty well,
> and even can write some nifty (but perfectly useless) programs.
> 
> My question is: when I go in tomorrow and start out is there anything
> I should know?  Any suggestions, comments, or general warnings from
> more experienced Perl hackers as to what to do and what not to do? 

I believe you should at least scan through  the perl faqs. Run
perldoc perlfaq1
...
perldoc perlfaq9

Plus at least one CGI/WWW related FAQs on 
http://www.perl.org/CGI_MetaFAQ.html

Jenda

= [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
-- Terry Pratchett in Sourcery


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Any Suggestions for Programmer Needing To Know Perl by Tomorrow?

2003-09-16 Thread shardisty
Wow! No pressure from above then

I think the Programming Perl book covers some rudimentary use of the CGI &
DBI modules. To create a simple web service, you just need to know how to
bolt it all together.

A couple of websites to look at for CGI:
http://www.webdevelopersjournal.com/columns/cgi1.html
http://www.cgi101.com/class/

The DBI module:
http://www.zdnet.com.au/builder/webdesign/scripting/story/0,240414,20267
210,00.htm
http://www.perl.com/pub/a/1999/10/DBI.html

Or the ultimate guide to everything: Google.

Hope this gets you in the right direction atleast.

Cheers!

- Original Message -
From: "Dan Anderson" <[EMAIL PROTECTED]>
To: "Perl List" <[EMAIL PROTECTED]>
Sent: Tuesday, September 16, 2003 8:17 PM
Subject: Any Suggestions for Programmer Needing To Know Perl by Tomorrow?


> My local pointy haired boss decided I should learn Perl over the weekend
> -- specifically to interact with databases and use in CGI programming.
> With the job market being what it is I said "Sure" and picked up
> O'Reilly's "Programming Perl".  After a lot of reading I think I
> understand the basic structure of the language pretty well, and even can
> write some nifty (but perfectly useless) programs.
>
> My question is: when I go in tomorrow and start out is there anything I
> should know?  Any suggestions, comments, or general warnings from more
> experienced Perl hackers as to what to do and what not to do?
>
> Much thanks in advance,
>
> -Dan
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Any Suggestions for Programmer Needing To Know Perl by Tomorrow?

2003-09-17 Thread R. Joseph Newton
Dan Anderson wrote:

> My local pointy haired boss decided I should learn Perl over the weekend

The whole language, and all its subtleties, or some functional subset.

>
> -- specifically to interact with databases and use in CGI programming.

What is your first Perl task.  Focus on the task itself, work out the logic,
and write what code you can to express that logic.  Then let us know about
where you are getting stuck.  The more specific you can be about the
immediate needs, the better you can focus your efforts in learning the
language.

Joseph


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



suggestions for perl program to make excel graph out from top output

2012-07-20 Thread Nemana, Satya
Gurus,

I want to write a perl program that captures top output in linux and makes nice 
graphs out of them(Microsoft excel)
Are there ready to use modules for this which will help in writing the program?
Any suggestions for inspirations?
Search in cpan for top is resulting in a lot of results, most of which are 
irrelevant, are there smarter ways to search?

Regards,
Satya



--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




RE: Any Suggestions for Programmer Needing To Know Perl by Tomorr ow?

2003-09-16 Thread Tim Johnson

My best suggestion: consult the list if you're completely stuck, being sure
to articulate your problem, including what you have already tried.  Also,
for the best answers, send the appropriate question to the appropriate list.
Go to Perl.org and find the mailing lists for CGI and DBI.

-Original Message-
From: Jenda Krynicky [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, September 16, 2003 1:29 PM
To: Perl List
Subject: Re: Any Suggestions for Programmer Needing To Know Perl by
Tomorrow?


From: Dan Anderson <[EMAIL PROTECTED]>
> My local pointy haired boss decided I should learn Perl over the 
> weekend -- specifically to interact with databases and use in CGI 
> programming. With the job market being what it is I said "Sure" and 
> picked up O'Reilly's "Programming Perl".  After a lot of reading I 
> think I understand the basic structure of the language pretty well, 
> and even can write some nifty (but perfectly useless) programs.
> 
> My question is: when I go in tomorrow and start out is there anything 
> I should know?  Any suggestions, comments, or general warnings from 
> more experienced Perl hackers as to what to do and what not to do?

I believe you should at least scan through  the perl faqs. Run
perldoc perlfaq1
...
perldoc perlfaq9

Plus at least one CGI/WWW related FAQs on 
http://www.perl.org/CGI_MetaFAQ.html

Jenda

= [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
-- Terry Pratchett in Sourcery


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: suggestions for perl program to make excel graph out from top output

2012-07-20 Thread Shlomi Fish
Hi Satya,

On Fri, 20 Jul 2012 13:33:04 +
"Nemana, Satya"  wrote:

> Gurus,
> 
> I want to write a perl program that captures top output in linux and makes 
> nice graphs out of them(Microsoft excel)
> Are there ready to use modules for this which will help in writing the 
> program?
> Any suggestions for inspirations?
> Search in cpan for top is resulting in a lot of results, most of which are 
> irrelevant, are there smarter ways to search?

Sure, use the GTop module which interfaces against libgtop:

https://metacpan.org/release/GTop

Its current metacpan.org documents are kinda messed up for some reason, so you
should view this page:

https://metacpan.org/module/MJH/GTop-0.17/GTop.pod

This may also prove useful:

http://developer.gnome.org/libgtop/stable/

For creating Excel spreadsheets with graphs you can look at a spreadsheet
generating module, such as:

* https://metacpan.org/release/Spreadsheet-WriteExcel

* https://metacpan.org/release/Spreadsheet-WriteExcelXML

Or maybe something OpenDocument related.

Regards,

Shlomi Fish


> 
> Regards,
> Satya
> 
> 
> 



-- 
-
Shlomi Fish   http://www.shlomifish.org/
Rethinking CPAN - http://shlom.in/rethinking-cpan

Writing a BitKeeper replacement is probably easier at this point than getting
its license changed.
— Matt Mackall (who ended up writing a BitKeeper replacement)

Please reply to list if it's a mailing list post - http://shlom.in/reply .

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




RE: suggestions for perl program to make excel graph out from top output

2012-07-20 Thread mike lively

 

> Date: Fri, 20 Jul 2012 17:19:06 +0300
> From: shlo...@shlomifish.org
> To: snem...@sonusnet.com
> CC: beginners@perl.org
> Subject: Re: suggestions for perl program to make excel graph out from top 
> output
> 
> Hi Satya,
> 
> On Fri, 20 Jul 2012 13:33:04 +
> "Nemana, Satya"  wrote:
> 
> > Gurus,
> > 
> > I want to write a perl program that captures top output in linux and makes 
> > nice graphs out of them(Microsoft excel)
> > Are there ready to use modules for this which will help in writing the 
> > program?
> > Any suggestions for inspirations?
> > Search in cpan for top is resulting in a lot of results, most of which are 
> > irrelevant, are there smarter ways to search?
> 
> Sure, use the GTop module which interfaces against libgtop:
> 
> https://metacpan.org/release/GTop
> 
> Its current metacpan.org documents are kinda messed up for some reason, so you
> should view this page:
> 
> https://metacpan.org/module/MJH/GTop-0.17/GTop.pod
> 
> This may also prove useful:
> 
> http://developer.gnome.org/libgtop/stable/
> 
> For creating Excel spreadsheets with graphs you can look at a spreadsheet
> generating module, such as:
> 
> * https://metacpan.org/release/Spreadsheet-WriteExcel
> 
> * https://metacpan.org/release/Spreadsheet-WriteExcelXML
> 
> Or maybe something OpenDocument related.
> 
> Regards,
> 
> Shlomi Fish
> 
> 
> > 
> > Regards,
> > Satya
> > 

 
You can also use the Chart module from CPAN to create many different kinds of 
charts as a PNG file.  This file can then be put into an Excel spreadsheet 
using the modules above.   This was fairly easy to do.
 
Mike Lively   

a perl code to get the process info ,Your comments and suggestions are welcome

2009-11-19 Thread gaochong
hi all

 

I refer to the following page and correct it somewhole , ,Your comments and
suggestions are welcome , thanks .

http://www.cpan.org/authors/id/S/SU/SUJAI/Process-Detail-0.1.pl

 

 

the code:

 

#!/usr/bin/perl 

 

use warnings;

use strict;

use Switch;

 

my $VERSION=0.1;

 

my $dir="/proc";

opendir DIR,$dir or die "opendir $dir err:$!";

 

sub hidden {

print "#" x 10 . "Hidden processlist" . "#" x 10 . "\n";

foreach my $pcs (readdir DIR) {

if ($pcs=~/\d+/ && $pcs=~/\./) {

&detailedview("$pcs");

}

}

}

 

sub all {

foreach my $pcs (readdir DIR) {

if ($pcs=~/\d+/) {

&detailedview("$pcs");

}

}

}

 

sub detailedview {

my @ar...@_;

my $envir="/proc/$args[0]/environ";

my $stat="/proc/$args[0]/status";

open CMD,"/proc/$args[0]/cmdline" or die "open CMD err:$!";

print "PID=$args[0]\n";

while () {

print "COMMAND=$_\n";

}

 

open FILE,"< $envir" or die "$!";

while () {

my @array=split /([A-Z]+(_|[A-Z])+\=.[^A-Z]+)/,$_;

foreach my $splitted (@array) {

if ($splitted=~/\=/) {

print "$splitted\n";

}

}

}

close FILE;

 

open FILESTAT,"< $stat" or die "$!";

while () {

if (/(Name|State|PPid|Gid|Uid)/) {

print;

}

}

close FILESTAT;

 

print "-" x 50 . "\n";

}

 

sub usage {

print "\nUsage:

-h\t For detailed view hidden process

-a\t For detailed view of all processes

-p\t For detailed view of process with process pid

--help\t For help

-V\t For checking Version\n\n";

}

 

if ($#ARGV lt 0) {

&usage;

exit;

} else {

switch ($ARGV[0]) {

case "-h" {&hidden;}

case "-p" {&detailedview($ARGV[1]);}

case "-a" {&all;}

case "--help" {&usage;}

case "-V" {print "\nProcess-Detail Version $VERSION\n\n"}

else {&usage;}

}

}