txt: ## dist_zef-lizmat-P5__FILE__.md
  [![Actions Status](https://github.com/lizmat/P5__FILE__/workflows/test/badge.svg)](https://github.com/lizmat/P5__FILE__/actions)
  
  # NAME
  
  Raku port of Perl's **FILE** and associated functionality
  
  # SYNOPSIS
  
  ```
  use P5__FILE__;  # exports __FILE__, __LINE__, __PACKAGE__, __SUB__
  
  ```
  
  # DESCRIPTION
  
  This module tries to mimic the behaviour of Perl's `__FILE__`, `__LINE__`, `__PACKAGE__` and `__SUB__` functionality as closely as possible in Raku.
  
  # TERMS
  
  ## **PACKAGE**
  
  A special token that returns the name of the package in which it occurs.
  
  ### Raku
  
  ```
  $?PACKAGE.^name
  
  ```
  
  Because `$?PACKAGE` gives you the actual `Package` object (which can be used for introspection), you need to call the `.^name` method to get a string with the name of the package.
  
  ## **FILE**
  
  A special token that returns the name of the file in which it occurs.
  
  ### Raku
  
  ```
  $?FILE
  
  ```
  
  ## **LINE**
  
  A special token that compiles to the current line number.
  
  ### Raku
  
  ```
  $?LINE
  
  ```
  
  ## **SUB**
  
  A special token that returns a reference to the current subroutine, or "undef" outside of a subroutine.
  
  ### Raku
  
  ```
  &?ROUTINE
  
  ```
  
  Because `&?ROUTINE` gives you the actual `Routine` object (which can be used for introspection), you need to call the `.name` method to get a string with the name of the subroutine.
  
  # AUTHOR
  
  Elizabeth Mattijsen [liz@raku.rocks](mailto:liz@raku.rocks)
  
  Source can be located at: <https://github.com/lizmat/P5__FILE>\_\_ . Comments and Pull Requests are welcome.
  
  # COPYRIGHT AND LICENSE
  
  Copyright 2018, 2019, 2020, 2021 Elizabeth Mattijsen
  
  Re-imagined from Perl as part of the CPAN Butterfly Plan.
  
  This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.
  