12 return grep { defined and length }
17 sub stash_name { $_[0] }
22 # If no one wants the result, don't bother computing it.
23 return unless defined wantarray;
25 my $hinthash = ( caller 0 )[10];
27 @tags{ _unpack_tags( $hinthash->{ $class->stash_name } ) } = ();
30 exists $tags{$_} and return !!1 for @_;
41 @_ = 'please' if not @_;
43 @tags{ _unpack_tags( @_, $^H{ $class->stash_name } ) } = ();
45 $^H{$class} = _pack_tags( keys %tags );
54 @tags{ _unpack_tags( $^H{$class} ) } = ();
55 delete @tags{ _unpack_tags(@_) };
56 my $new = _pack_tags( keys %tags );
58 if ( not length $new ) {
59 delete $^H{ $class->stash_name };
62 $^H{ $class->stash_name } = $new;
66 delete $^H{ $class->stash_name };
78 less - perl pragma to request less of something
86 This is a user-pragma. If you're very lucky some code you're using
87 will know that you asked for less CPU usage or ram or fat or... we
88 just can't know. Consult your documentation on everything you're
91 For general suggestions, try requesting C<CPU> or C<memory>.
97 If you ask for nothing in particular, you'll be asking for C<less
102 =head1 FOR MODULE AUTHORS
104 L<less> has been in the core as a "joke" module for ages now and it
105 hasn't had any real way to communicating any information to
106 anything. Thanks to Nicholas Clark we have user pragmas (see
107 L<perlpragma>) and now C<less> can do something.
109 You can probably expect your users to be able to guess that they can
110 request less CPU or memory or just "less" overall.
112 If the user didn't specify anything, it's interpreted as having used
113 the C<please> tag. It's up to you to make this useful.
119 =head2 C<< BOOLEAN = less->of( FEATURE ) >>
121 The class method C<< less->of( NAME ) >> returns a boolean to tell you
122 whether your user requested less of something.
124 if ( less->of( 'CPU' ) ) {
127 elsif ( less->of( 'memory' ) ) {
131 =head2 C<< FEATURES = less->of() >>
133 If you don't ask for any feature, you get the list of features that
134 the user requested you to be nice to. This has the nice side effect
135 that if you don't respect anything in particular then you can just ask
136 for it and use it like a boolean.
149 =item This probably does nothing.
151 =item This works only on 5.10+
153 At least it's backwards compatible in not doing much.