WeBWorK::PG::IO - Functions used by WeBWorK::PG::Translator for file IO.


use WeBWorK::PG::IO;
my %functions_to_share = %WeBWorK::PG::IO::SHARE;


This module defines several functions to be shared with a safe compartment by the PG translator. All exported methods are shared.



This is used in processing some of the sample CAPA files and in creating aliases to redirect calls to duplicate problems so that they go to the original problem instead. It is called by includePGproblem.

It reads and evaluates the string in the same way that the Translator evaluates the string in a PG file.


Don't use for huge files. The file name will have .pg appended to it if it doesn't already end in .pg. Files may become double spaced.? Check the join below. This is used in importing additional .pg files as is done in the sample problems translated from CAPA. Returns a reference to a string containing the contents of the file.


Currently a no-op. Returns $path unmodified.


Returns the last segment of the path (i.e. the text after the last forward slash).


Returns the initial segments of the of the path (i.e. the text up to the last forward slash).

createFile($fileName, $permission, $numgid)

Creates a file with the given name, permission bits, and group ID.

createDirectory($dirName, $permission, $numgid)

Creates a directory with the given name, permission bits, and group ID.


Checks to see if the given path is a sub directory of the directory the caller says we are allowed to read from.

curl -- path to curl defined in site.conf
copyCommand -- path to cp defined in site.conf
returns the path to a requested external command that is defined in site.conf