Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^2: Developing code to be a module (perl -lanse)

by Anonymous Monk
on May 01, 2013 at 07:37 UTC ( #1031512=note: print w/ replies, xml ) Need Help??


in reply to Re: Developing code to be a module
in thread Developing code to be a module

Lots of folks write programs that don't have functions, programs that don't start from a template

#!/usr/bin/perl -- use strict; use warnings; Main( @ARGV ); exit( 0 ); ...

This is typical for short programs and one-offs

And you can't beat perl lanse :)

$ echo hi there | perl -lanse " print qq{$greet\t$F[1]}" -- -greet=by +e bye there $ echo hi there > stuff $ perl -lanse " print qq{$greet\t$F[1]}" -- -greet=bye stuff bye there

These types of programs can live and do good work quite for a long time before they need a second look, or functions/modules/tests...

Code doesn't need to go places :)


Comment on Re^2: Developing code to be a module (perl -lanse)
Select or Download Code
Re^3: Developing code to be a module (perl -lanse)
by space_monk (Chaplain) on May 01, 2013 at 07:48 UTC

    I don't have a problem with "Perl Golf" short solutions to problems and sometimes use them myself. I even have a go at some of them on here! :-)

    However its obvious the OP (Original Poster) is not talking about those basic sorts of problems.

    If you spot any bugs in my solutions, it's because I've deliberately left them in as an exercise for the reader! :-)

      I don't have a problem with "Perl Golf" short solutions ...:-)

      There is nothing even remotely "Perl Golf" about that, IMHO that is practically a slur against perl, practically anti-perl-propaganda :)

      However its obvious the OP (Original Poster) is not talking about those basic sorts of problems.

      Sure its not :) Take for example Watching long processes through CGI (Aug 02), nothing particularly basic about it, sure its got 2 functions, but most of the code isn't in functions, less than 100 lines

      Or take for example Text-CSV_XS-0.97/examples/csv2xls, 200 lines, one function( usage(), mostly string/heredoc)

      Its easy to well past 1000 lines with this type of program, and its obvious to me this is the type of program the OP is talking about -- doesn't need modules or Test:: anything

        Whilst the example you linked to doesn't use Test:: anything, your argument is somewhat deflated by the fact that that Text::CSV_XS has extensive unit tests attached to it, according to the Manifest you linked to. :-).

        I haven't time to examine the example you referred to in detail, so I could be wrong, but I suspect there is a case to be made for contents of the main loop to be also made into a function.

        Personally I'm deeply uncomfortable if someone has waffled on for 1000 lines of programming without breaking it up somehow! But I won't deny that there will always be exceptions to this principle, e.g. large tables of necessary data, text or whatever.

        If you spot any bugs in my solutions, it's because I've deliberately left them in as an exercise for the reader! :-)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1031512]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (13)
As of 2014-09-16 20:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (47 votes), past polls