in reply to Creating a bash script "on the fly"
This kind of black box module?
Output:use v5.12; use strict; use warnings; package MyClass { use Moo; has _map => ( is => 'lazy', builder => sub { # however you get your list put that here return { 'file1' => { type => 'file' }, 'somedir/file2' => { type => 'file' }, 'dir1' => { type => 'dir' }, 'somedir/dir2' => { type => 'dir' }, 'link1' => { type => 'link', target => 'somedi +r/file1' }, 'link2' => { type => 'link', target => 'otherd +ir/file3' }, }; }, ); sub files { my $self = shift; return [ grep { $self->_map->{$_}{type} eq 'file' } keys %{ $s +elf->_map } ]; } sub directories { my $self = shift; return [ grep { $self->_map->{$_}{type} eq 'dir' } keys %{ $se +lf->_map } ]; } sub links { my $self = shift; my @links = grep { $self->_map->{$_}{type} eq 'link' } keys %{ + $self->_map }; return [ map { { $_ => $self->_map->{$_}{target} } } @links ]; } }; my $obj = MyClass->new; say for @{ $obj->directories };
dir1 somedir/dir2
Hope this helps!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Creating a bash script "on the fly"
by kennethk (Abbot) on Mar 26, 2021 at 20:36 UTC | |
by Fletch (Bishop) on Mar 26, 2021 at 21:09 UTC | |
|
Re^2: Creating a bash script "on the fly"
by ovedpo15 (Pilgrim) on Mar 27, 2021 at 10:22 UTC | |
by haukex (Archbishop) on Mar 27, 2021 at 10:34 UTC | |
by ovedpo15 (Pilgrim) on Mar 27, 2021 at 11:11 UTC | |
by haukex (Archbishop) on Mar 27, 2021 at 11:19 UTC |