News for hackers. Stuff that matters.
Re:Why Perl? by gatlin on Tuesday November 15, 2011 @01:25PM (#3239385)
> proper function arguments

  my ($a, $b, $c) = @_; # this works
Or I can do things like

  my ($first, @rest) = @_;
giving me features which require all manner of annoying syntax in Python.

> exceptions

http://search.cpan.org/~nilsonsfj/Error-TryCatch-0.07/lib/Er...

or just eval and see what the output is.

> objects

Edit: I was being an asshole Perl has a decent object system out of the box and Moose for those times when you want type constraints.

  package MyClass;
  use base 'Parent';
  
  sub new { my $class = shift; bless { prop1 => undef },   $class; }
  
  package main;

  my $obj = new MyClass;
> etc

Lexical scoping, anonymous coderefs that can be passed as data, modifiable syntax, reference semantics, and the regex engine I see other languages comparing theirs too.

Re:Why Perl? by kbd on Tuesday November 15, 2011 @01:50PM (#3239521)
> giving me features which require all manner of annoying syntax in Python

    def foo(first, *rest):
vs

    sub foo{
        my ($first, @rest) = @_;

?
Re:Why Perl? by gatlin on Tuesday November 15, 2011 @02:39PM (#3239780)

  >>> def foo(first, *rest):
  ...  print first
  ...  print rest
  
  >>> foo([1,2,3])
  [1,2,3]
  ()
*

  sub foo {
    my ($first,@rest) = @_;
    print $first . "\n"; 
    print @rest;
  }

  foo (1,2,3);

  1
  23
*

It's probably my Python deficiency. My claim that Python's syntax was going to be uglier is probably wrong, but I think the claim that Perl's is appreciably worse is also wrong. We can all get along!

Re:Why Perl? by TylerE on Tuesday November 15, 2011 @04:00PM (#3240195)
Not sure I follow you. Your python example is very explicitly passing a _single_ arguement, a list of three items. If you call it the same way you call the perl code, you'd have the same result.
Re:Why Perl? by phaylon on Tuesday November 15, 2011 @03:00PM (#3239890)
Exactly, it's a trade-off. Making the other side of the fence not impossible to reach, you just have to hop a little. Perl can easily be made nicer and Python can surely with ease be made more flexible.
Re:Why Perl? by Mithaldu on Tuesday November 15, 2011 @01:53PM (#3239538)
use Method::Signatures;

func set (Str $key, Int $val) {