I'm trying to set up perspective projection in OpenGL but it doesn't work

    void Camera::setViewportSize(float left, float right, float bottom, float top)
    {
	    constexpr float fov = glm::radians(45.0f);
	    m_projectionMatrix = glm::perspective(fov, (right - left) / (top - bottom), 0.1f, 10.0f);
	    recalculateViewMatrix();
    }

    void Camera::recalculateViewMatrix() 
    {
	    glm::mat4 translate = glm::translate(glm::mat4(1.0f), glm::vec3(m_position, 0.0f));
	    glm::mat4 rotate = glm::rotate(glm::mat4(1.0f), m_rotation, glm::vec3(0.0f, 0.0f, 1.0f));
	    glm::mat4 scale = glm::scale(glm::mat4(1.0f), glm::vec3(m_scale, m_scale, 1.0f));

	    m_viewMatrix = translate * rotate * scale;
	    m_viewMatrix = glm::inverse(m_viewMatrix);

	    m_viewProjectionMatrix = m_projectionMatrix * m_viewMatrix;
    }

I upload viewProjectionMatrix to shader and use it like this:
    	

    gl_Position = u_viewProjectionMatrix * vec4(a_position, 1.0);

It just doesn't show anything.
I double checked if I pass good left, right, bottom, top values and it should be all good.
Playing with zNear and zFar didn't change anything.
Note - When I use ortho, it works like a charm:

    	m_projectionMatrix = glm::ortho(left, right, bottom, top, 1.0f, -1.0f);
[![enter image description here][1]][1]


**Update**
I did add model matrix and I translated it -2 units on z axis. I can see the lines:
[![enter image description here][2]][2]
But they are disorted.
They should be (0.0f, 0.0f), (100.0, 100.0)
               (0.0f, 0.0f), (600.0f, 800.0f)
It seem like the centre of screen is at (0, 0)???

  [1]: https://i.sstatic.net/Cqg2t.png
  [2]: https://i.sstatic.net/neB0h.png