Snippets

Brian Medley Oddness with overriding chown

Created by Brian Medley
package Joy;

use Moose;

use autodie;
# no autodie qw(chown);
use subs qw(chown);

use experimental qw(signatures);

has 'path' => (is => 'ro', isa => 'Str');

sub chown ($this, $user = "bpm", $group = "admin") {
    my $uid = getpwnam($user);
    my $gid = getgrnam($group);

    CORE::chown($uid, $gid, $this->path);

    return $this;
}

package main;

Joy->new(path => "/opt/joy")->chown("bpm", "admin");

CORE::say("no joy");

__END__
Prototype mismatch: sub Joy::chown (@) vs none at joy-comments.pl line 20.
Subroutine chown redefined at joy-comments.pl line 13.
Can't locate object method "chown" via package "Joy" at joy-comments.pl line 24.
package Joy;

use Moose;

use autodie;
no autodie qw(chown);
use subs qw(chown);

use experimental qw(signatures);

has 'path' => (is => 'ro', isa => 'Str');

sub chown ($this, $user = "bpm", $group = "admin") {
    my $uid = getpwnam($user);
    my $gid = getgrnam($group);

    CORE::chown($uid, $gid, $this->path);

    return $this;
}

package main;

Joy->new(path => "/opt/joy")->chown("bpm", "admin");

CORE::say("no joy");

__END__
Can't locate object method "chown" via package "Joy" at joy-no_comment.pl line 24.

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.