Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

gawk to perl

by rmflow (Beadle)
on Apr 09, 2010 at 06:13 UTC ( #833707=perlquestion: print w/replies, xml ) Need Help??
rmflow has asked for the wisdom of the Perl Monks concerning the following question:

Is there any way to automatically convert gawk script to perl?
a2p is an awk converter and reports many errors

Replies are listed 'Best First'.
Re: gawk to perl
by CountZero (Bishop) on Apr 09, 2010 at 06:31 UTC
    Have a look at this article on stackoverflow: How can I make Perl's a2p support gawk?


    A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

      The article suggests:

      If your gawk program doesn't make calls to other cygwin/unix utilities then it would probably be better to just distribute a Windows gawk executable to your colleagues along with the program.

      But my problem is different - gawk is extremely buggy, often fails with INTERNAL ERROR and different versions of gawk behave differently. The last drop was that gawk was unable to make console output in proper codepage in Windows 7, so I decided to get rid of gawk completely.

        So, maybe, instead of trying to rely on buggy translators, consider simply rewriting the awk script in Perl?

        If you have a problem with a specific awk construct, maybe we can help you there. Alternatively, you'll have to explain what the awk snippet does and then find out how to accomplish the same using Perl.

        different versions of gawk behave differently

        I think you found the reason why it is difficult to write a gawk to perl converter.

        My best suggestion is to use a2p and then hand-code Perl where you get the errors. To be honest converted code is rarely readable and often inefficient so Corion's suggestion might be better in the long term.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://833707]
Approved by ahmad
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2017-07-24 03:46 GMT
Find Nodes?
    Voting Booth?
    I came, I saw, I ...

    Results (348 votes). Check out past polls.