This file is indexed.

/usr/share/perl5/Mojo/Cache.pm is in libmojolicious-perl 2.23-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package Mojo::Cache;
use Mojo::Base -base;

has 'max_keys' => 100;

# "If at first you don't succeed, give up."
sub get { (shift->{cache} || {})->{shift()} }

# "Maybe I should hook up with you guys.
#  After all, how long do any of us have to live?
#  Well, if you like the ribwich, not very.
#  *holds up ribwich box with Krusty saying 'WILL CAUSE EARLY DEATH'*
#  D'oh!"
sub set {
  my ($self, $key, $value) = @_;

  # Cache with size limit
  my $keys  = $self->max_keys;
  my $cache = $self->{cache} ||= {};
  my $stack = $self->{stack} ||= [];
  delete $cache->{shift @$stack} while @$stack >= $keys;
  push @$stack, $key;
  $cache->{$key} = $value;

  return $self;
}

1;
__END__

=head1 NAME

Mojo::Cache - Naive in-memory cache

=head1 SYNOPSIS

  use Mojo::Cache;

  my $cache = Mojo::Cache->new(max_keys => 50);
  $cache->set(foo => 'bar');
  my $foo = $cache->get('foo');

=head1 DESCRIPTION

L<Mojo::Cache> is a naive in-memory cache with size limits.
Note that this module is EXPERIMENTAL and might change without warning!

=head1 ATTRIBUTES

L<Mojo::Cache> implements the following attributes.

=head2 C<max_keys>

  my $max_keys = $cache->max_keys;
  $cache       = $cache->max_keys(50);

Maximum number of cache keys, defaults to C<100>.

=head1 METHODS

L<Mojo::Cache> inherits all methods from L<Mojo::Base> and implements the
following new ones.

=head2 C<get>

  my $value = $cache->get('foo');

Get cached value.

=head2 C<set>

  $cache = $cache->set(foo => 'bar');

Set cached value.

=head1 SEE ALSO

L<Mojolicious>, L<Mojolicious::Guides>, L<http://mojolicio.us>.

=cut