Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Perl Executing Browser

GitHub Version GitHub License Travis CI Build Status

Perl Executing Browser (PEB) is an HTML5 user interface for Perl 5 desktop applications. It is a C++ Qt 5 application running local Perl 5 scripts as child processes without server. Inspired by Electron and NW.js, PEB is another reuse of web technologies in desktop applications with Perl doing the heavy lifting instead of Node.js.

PEB Screenshot


The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
in the documentation of this project are to be interpreted as described in RFC 2119.

Quick Start

  • 1. Download the PEB Demo Application.
    64-bit Linux single-file AppImage executable and
    32-bit Windows ZIP archive are available.
    They include everything you need to start developing PEB-based applications.

  • 2. Unpack:

    64-bit Linux:

    ./peb-demo-*.AppImage --appimage-extract

    Unzip using any Windows unzip utility.

  • 3. Optionally install any CPAN modules you may need:

    64-bit Linux:

    cd squashfs-root/resources/app/perl/bin
    ./perl ./cpanm YourModule

    Windows - from the extracted peb-demo directory:

    cd resources\app\perl
    cpanm YourModule
  • 4. Write your Perl application reading user input on STDIN:

    my $input = <STDIN>;
    chomp $input;
  • 5. Write a {PEB_executable_directory}/resources/app/index.html with
    a settings JavaScript object for every Perl script you want to use.
    Start local Perl scripts by clicking a link or submitting a form to a special URL.
    Select files or folders with their full paths by clicking a link to a special URL.

  • 6. Optionally change the PEB AppImage configuration files.

  • 7. Optionally pack your application:

    64-bit Linux - from the extracted squashfs-root directory:

    export VERSION="X.X.X" && ./

    The resulting AppImage will be produced in the squashfs-root directory.

    Zip your PEB-based application using any Windows zip utility.

Design Objectives

  • 1. Easy and beautiful graphical user interface for Perl 5 desktop applications
  • 2. Fast and zero-installation software
  • 3. Cross-platform availability
  • 4. Secure solution with no server
  • 5. Maximal reuse of existing web technologies and standards



  • PEB does not need administrative privileges or installation procedure.
  • PEB does not need and does not implement any server.
  • Local Perl 5 scripts are executed with no sandbox and they have access to full file paths.
  • Calling local Perl scripts from web pages is blocked.
  • Files or folders can not be selected with their full paths from web pages.
  • Cross-site scripting is disabled.


  • No Perl scripting inside frames
  • Limited HTML5 support
  • No pop-up windows
  • No file downloads
  • No printing


PEB has unified logging of JavaScript and Perl errors in the JavaScript console.
Press Ctrl + I to open the QWebInspector and go to the Console tab.


PEB was started in 2013 by Dimitar D. Mitov as a simple user interface for personal database applications.

Thanks and Credits


This program is free software;
you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License,
as published by the Free Software Foundation;
either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Dimitar D. Mitov, 2013 - 2020
Valcho Nedelchev, 2014 - 2016