Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^2: Refactoring Perl 1 - Extract Method

by agianni (Hermit)
on Jun 25, 2007 at 15:04 UTC ( #623191=note: print w/ replies, xml ) Need Help??


in reply to Re: Refactoring Perl 1 - Extract Method
in thread Refactoring Perl #1 - Extract Method

I haven't had a chance to try the script out, but I'd like to get myself set up to use some of these tools that provide refactoring capacity. I have briefly looked at Komodo and Eclipse but my development environment doesn't make them particularly easy to use and I haven't been able to take the time to get myself setup with them. I've been using emacs for years and just haven't seen the value in switching just yet.

I would definitely be interested to see other's comments on refactoring tools for Perl. I know Devel::Refactor was built specifically for use within Eclipse. Any others out there?

perl -e 'split//,q{john hurl, pest caretaker}and(map{print @_[$_]}(joi +n(q{},map{sprintf(qq{%010u},$_)}(2**2*307*4993,5*101*641*5261,7*59*79 +*36997,13*17*71*45131,3**2*67*89*167*181))=~/\d{2}/g));'


Comment on Re^2: Refactoring Perl 1 - Extract Method
Download Code
Re^3: Refactoring Perl 1 - Extract Method
by FunkyMonk (Canon) on Jun 25, 2007 at 18:06 UTC
    After reading this thread, I hooked up a small Devel::Refactor script to emacs at the weekend. It works, but I haven't used it seriously, and I'm not convinced it provides a huge productivity leap

    Anyway, here's how...

    in your .emacs:

    (defun refactor-extract () "Change region into a subroutine" (interactive) (shell-command-on-region (point) (mark) "./refactor-extract" t) )

    and some Perl in refactor-extract:

    #!/usr/bin/perl ### Rewrite code block as a subroutine # This is mostly intended to be used through emacs' # shell-command-on-region # #(defun refactor-extract () # "Change region in to a subroutine" # (interactive) # (shell-command-on-region (point) (mark) "./refactor-extract" t)) # #Based on a Perlmonks node: http://www.perlmonks.org/?node_id=622772 use strict; use warnings FATAL => 'all'; use Devel::Refactor; my $code = join '', <>; my $name = "refactored_" . sprintf( "%04d", rand() * 10000 ); print join "\n", Devel::Refactor->new->extract_subroutine( $name, $cod +e );

    use Disclaimer::Std;
    This was a quick hack, quickly hacked. Use at your peril.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (7)
As of 2014-08-28 03:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (255 votes), past polls