PerlInterpreter

public struct PerlInterpreter

A Perl interpreter.

This type hides a pointer to the underlying C Perl interpreter and provides a clean Swifty interface to it. It doesn’t provide any guarantees about a Perl interpreter instance aliveness and should be used only while they are provided by outer conditions. Generally it is not a problem because a Perl interpreter is only created once on startup and destroyed on shutdown of a process. In the case of an XS module an interpreter aliveness is guaranteed during the scope of an XSUB call.

Embedding a Perl interpreter

let perl = PerlInterpreter.new()
try perl.eval("print qq/OK\\n/") // Do something interesting with Perl
perl.destroy()

Writting an XS module

@_cdecl("boot_Your__Module__Name")
public func boot(_ perl: PerlInterpreter.Pointer) {
    let perl = PerlInterpreter(perl)
    // Create XSUBs
    PerlSub(name: "test", perl: perl) { () -> Void in
        print("OK")
    }
}
  • A type of the pointer to the underlying C PerlInterpreter.

    Declaration

    Swift

    public typealias Pointer = UnsafeMutablePointer<CPerl.PerlInterpreter>
  • A pointer to the underlying C PerlInterpreter structure.

    Declaration

    Swift

    public let pointer: Pointer
  • Wrap a pointer to the C PerlInterpreter structure.

    Declaration

    Swift

    public init(_ pointer: Pointer)
  • A Perl interpreter stored in the thread local storage.

    Declaration

    Swift

    public static var current: PerlInterpreter
  • The main Perl interpreter of the process.

    Declaration

    Swift

    public static var main: PerlInterpreter
  • Loads the module by name. It is analogous to Perl code eval "require $module" and even implemented that way.

    Declaration

    Swift

    public func require(_ module: String) throws
  • Loads the module by its file name. It is analogous to Perl code eval "require '$file'" and even implemented that way.

    Declaration

    Swift

    public func require(file: String) throws
  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: String, args: [PerlScalarConvertible?], context: PerlSub.VoidContext = .void) throws -> Void

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.VoidContext = .void) throws -> Void

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: PerlSub, args: [PerlScalarConvertible?], context: PerlSub.VoidContext = .void) throws -> Void

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: String, _ args: PerlScalarConvertible?..., context: PerlSub.VoidContext = .void) throws -> Void

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.VoidContext = .void) throws -> Void

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: PerlSub, _ args: PerlScalarConvertible?..., context: PerlSub.VoidContext = .void) throws -> Void

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: String, args: [PerlScalarConvertible?], context: PerlSub.ScalarContext = .scalar) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ScalarContext = .scalar) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlSub, args: [PerlScalarConvertible?], context: PerlSub.ScalarContext = .scalar) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: String, _ args: PerlScalarConvertible?..., context: PerlSub.ScalarContext = .scalar) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ScalarContext = .scalar) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlSub, _ args: PerlScalarConvertible?..., context: PerlSub.ScalarContext = .scalar) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: String, args: [PerlScalarConvertible?], context: PerlSub.ScalarContext = .scalar) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ScalarContext = .scalar) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlSub, args: [PerlScalarConvertible?], context: PerlSub.ScalarContext = .scalar) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: String, _ args: PerlScalarConvertible?..., context: PerlSub.ScalarContext = .scalar) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ScalarContext = .scalar) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlSub, _ args: PerlScalarConvertible?..., context: PerlSub.ScalarContext = .scalar) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: String, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlSub, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: String, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlSub, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> R

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: String, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlSub, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: String, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(sub: PerlSub, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> R?

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R0 : PerlScalarConvertible, R1 : PerlScalarConvertible>(sub: String, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext = .array) throws -> (R0, R1)

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R0 : PerlScalarConvertible, R1 : PerlScalarConvertible>(sub: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext = .array) throws -> (R0, R1)

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R0 : PerlScalarConvertible, R1 : PerlScalarConvertible>(sub: PerlSub, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext = .array) throws -> (R0, R1)

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R0 : PerlScalarConvertible, R1 : PerlScalarConvertible>(sub: String, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext = .array) throws -> (R0, R1)

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R0 : PerlScalarConvertible, R1 : PerlScalarConvertible>(sub: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext = .array) throws -> (R0, R1)

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R0 : PerlScalarConvertible, R1 : PerlScalarConvertible>(sub: PerlSub, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext = .array) throws -> (R0, R1)

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: String, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> PerlSub.ReturnValues

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> PerlSub.ReturnValues

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: PerlSub, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> PerlSub.ReturnValues

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: String, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> PerlSub.ReturnValues

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> PerlSub.ReturnValues

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl subroutine.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(sub: PerlSub, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> PerlSub.ReturnValues

    Parameters

    sub

    The name of the subroutine.

    args

    Arguments to pass to the Perl sub.

    context

    Context of the call.

    Return Value

    Values returned by the Perl sub converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(method: String, args: [PerlScalarConvertible?], context: PerlSub.VoidContext = .void) throws -> Void

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(method: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.VoidContext = .void) throws -> Void

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(method: String, _ args: PerlScalarConvertible?..., context: PerlSub.VoidContext = .void) throws -> Void

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(method: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.VoidContext = .void) throws -> Void

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: String, args: [PerlScalarConvertible?], context: PerlSub.ScalarContext = .scalar) throws -> R

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ScalarContext = .scalar) throws -> R

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: String, _ args: PerlScalarConvertible?..., context: PerlSub.ScalarContext = .scalar) throws -> R

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ScalarContext = .scalar) throws -> R

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: String, args: [PerlScalarConvertible?], context: PerlSub.ScalarContext = .scalar) throws -> R?

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ScalarContext = .scalar) throws -> R?

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: String, _ args: PerlScalarConvertible?..., context: PerlSub.ScalarContext = .scalar) throws -> R?

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ScalarContext = .scalar) throws -> R?

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: String, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> R

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> R

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: String, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> R

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> R

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: String, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> R?

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> R?

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: String, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> R?

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R : PerlScalarConvertible>(method: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> R?

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R0 : PerlScalarConvertible, R1 : PerlScalarConvertible>(method: String, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext = .array) throws -> (R0, R1)

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R0 : PerlScalarConvertible, R1 : PerlScalarConvertible>(method: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext = .array) throws -> (R0, R1)

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R0 : PerlScalarConvertible, R1 : PerlScalarConvertible>(method: String, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext = .array) throws -> (R0, R1)

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call<R0 : PerlScalarConvertible, R1 : PerlScalarConvertible>(method: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext = .array) throws -> (R0, R1)

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(method: String, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> PerlSub.ReturnValues

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(method: PerlScalar, args: [PerlScalarConvertible?], context: PerlSub.ArrayContext) throws -> PerlSub.ReturnValues

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(method: String, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> PerlSub.ReturnValues

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Calls the Perl method.

    The arguments of the call will be automagically converted to mortalized Perl scalar values with the lifetime of the scope of this call. The similar thing will happen to the Perl return values: they will be destroyed before the call returns (but after conversion to Swift values was done).

    Declaration

    Swift

    public func call(method: PerlScalar, _ args: PerlScalarConvertible?..., context: PerlSub.ArrayContext) throws -> PerlSub.ReturnValues

    Parameters

    method

    The name of the method.

    args

    Arguments to pass to the Perl method.

    context

    Context of the call.

    Return Value

    Values returned by the Perl method converted to requested Swift types.

  • Creates a new embedded Perl interpreter.

    Declaration

    Swift

    public static func new() -> PerlInterpreter
  • Shuts down the Perl interpreter.

    Declaration

    Swift

    public func destroy()